利用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实现的Excel文件读写类
Jul 30 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
python列表的增删改查实例代码
Jan 30 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 Python
Python列表切片常用操作实例解析
Dec 16 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
Python利用zhdate模块实现农历日期处理
Mar 31 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数据库配置文件一般做法分享
2012/07/07 PHP
PHP 万年历实现代码
2012/10/18 PHP
php表单敏感字符过滤类
2014/12/08 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Python循环语句中else的用法总结
2016/09/11 Python
详解Python import方法引入模块的实例
2017/08/02 Python
python素数筛选法浅析
2018/03/19 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
python+pyqt5编写md5生成器
2019/03/18 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python之指数与E记法的区别详解
2019/11/21 Python
Python yield的用法实例分析
2020/03/06 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
HTML5标签小集
2011/08/02 HTML / CSS
客服部工作职责范本
2014/02/14 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
啤酒节策划方案
2014/05/28 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js