利用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 XML RPC服务器端和客户端实例
Nov 22 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
简单介绍Python的Django框架加载模版的方式
Jul 20 Python
python web框架学习笔记
May 03 Python
Django rest framework工具包简单用法示例
Jul 20 Python
python获取txt文件词向量过程详解
Jul 05 Python
python getpass实现密文实例详解
Sep 24 Python
python-视频分帧&多帧合成视频实例
Dec 10 Python
Django单元测试中Fixtures的使用方法
Feb 26 Python
python def 定义函数,调用函数方式
Jun 02 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
Python selenium如何打包静态网页并下载
Aug 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 中检查或过滤IP地址的实现代码
2011/11/27 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
js实现抽奖的两种方法
2020/03/19 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python验证码识别处理实例
2015/12/28 Python
python实现简单遗传算法
2018/03/19 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
django使用channels实现通信的示例
2020/10/19 Python
DJI全球:DJI Global
2021/03/15 全球购物
国际贸易个人求职信范文
2014/01/04 职场文书
自荐信需注意事项
2014/01/25 职场文书
争论的故事教学反思
2014/02/06 职场文书
数控专业自荐书范文
2014/03/16 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
车队安全员岗位职责
2015/02/15 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技