利用python画一颗心的方法示例


Posted in Python onJanuary 31, 2017

前言

Python一般使用Matplotlib制作统计图形,用它自己的说法是‘让简单的事情简单,让复杂的事情变得可能'。用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统计图形,这些图形可以导出为多种具有出版质量的格式。此外,它和ipython结合使用,确实方便,谁用谁知道!本文将介绍利用python中的matplotlib画一颗心,感兴趣的朋友们下面来一起看看吧。

安装matplotlib

首先要安装matplotlib

pip install matplotlib

windows用户可以去官网下载安装。官网看到matpltlib的作者John Hunter (1968-2012)刚去世不久,在此感谢他创造了这样一个强大的绘图工具。

上代码

#!/usr/bin/env python3
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np


def heart_3d(x,y,z):
 return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3


def plot_implicit(fn, bbox=(-1.5, 1.5)):
 ''' create a plot of an implicit function
 fn ...implicit function (plot where fn==0)
 bbox ..the x,y,and z limits of plotted interval'''
 xmin, xmax, ymin, ymax, zmin, zmax = bbox*3
 fig = plt.figure()
 ax = fig.add_subplot(111, projection='3d')
 A = np.linspace(xmin, xmax, 100) # resolution of the contour
 B = np.linspace(xmin, xmax, 40) # number of slices
 A1, A2 = np.meshgrid(A, A) # grid on which the contour is plotted

 for z in B: # plot contours in the XY plane
  X, Y = A1, A2
  Z = fn(X, Y, z)
  cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))
  # [z] defines the only level to plot
  # for this contour for this value of z

 for y in B: # plot contours in the XZ plane
  X, Z = A1, A2
  Y = fn(X, y, Z)
  cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))

 for x in B: # plot contours in the YZ plane
  Y, Z = A1, A2
  X = fn(x, Y, Z)
  cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))

 # must set plot limits because the contour will likely extend
 # way beyond the displayed level. Otherwise matplotlib extends the plot limits
 # to encompass all values in the contour.
 ax.set_zlim3d(zmin, zmax)
 ax.set_xlim3d(xmin, xmax)
 ax.set_ylim3d(ymin, ymax)

 plt.show()

if __name__ == '__main__':
 plot_implicit(heart_3d)

效果是这个样子,挺有意思的:

利用python画一颗心的方法示例

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Python内置加密模块用法解析
Nov 25 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
python topk()函数求最大和最小值实例
Apr 02 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
Pillow图像处理库安装及使用
Apr 12 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 #Python
利用python实现命令行有道词典的方法示例
Jan 31 #Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 #Python
python 编程之twisted详解及简单实例
Jan 28 #Python
详解python之简单主机批量管理工具
Jan 27 #Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 #Python
在Django同1个页面中的多表单处理详解
Jan 25 #Python
You might like
php str_replace的替换漏洞
2008/03/15 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
php表单处理操作
2017/11/16 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
linux下python使用sendmail发送邮件
2018/05/22 Python
python实现连续图文识别
2018/12/18 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
Android笔试题总结
2014/11/29 面试题
历史专业个人求职信分享
2013/12/20 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
保护野生动物倡议书
2014/05/16 职场文书
运动会演讲稿50字
2014/08/25 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
写给老师的保证书
2015/05/09 职场文书
监守自盗观后感
2015/06/10 职场文书
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
如何通过一篇文章了解Python中的生成器
2022/04/02 Python