利用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实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
PyQt 线程类 QThread使用详解
Jul 16 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python面向对象 反射原理解析
Aug 12 Python
Python数据分析模块pandas用法详解
Sep 04 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
matplotlib 画双轴子图无法显示x轴的解决方法
Jul 27 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数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python使用建议与技巧分享(一)
2020/08/17 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
二手书店创业计划书
2014/01/16 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
信仰心得体会
2014/09/05 职场文书
八项规定整改方案
2014/10/01 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
教师党员个人总结
2015/02/10 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
JavaScript实现简单拖拽效果
2021/09/15 Javascript