利用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中的MongoDB基本操作:连接、查询实例
Feb 13 Python
Python基础知识_浅谈用户交互
May 31 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
Python中的元组介绍
Jan 28 Python
Django用户认证系统 组与权限解析
Aug 02 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
从python读取sql的实例方法
Jul 21 Python
如何利用Python 进行边缘检测
Oct 14 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
浅谈Python数学建模之固定费用问题
Jun 23 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 adodb操作mysql数据库
2009/03/19 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
2011/07/28 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
javascript模拟订火车票和退票示例
2014/04/24 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
详解Python多线程
2016/11/14 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
python 产生token及token验证的方法
2018/12/26 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
python可视化text()函数使用详解
2020/02/11 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python 必须了解的5种高级特征
2020/09/10 Python
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
党员自我评价分享
2013/12/13 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
小区停车场管理制度
2014/01/27 职场文书
主办会计岗位职责
2014/03/13 职场文书
理想演讲稿范文
2014/05/21 职场文书
岗位说明书怎么写
2014/07/30 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
工作保证书怎么写
2015/02/28 职场文书
小学校园广播稿
2015/08/18 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python