利用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处理cookie详解
Feb 07 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python字典的常用操作方法小结
May 16 Python
用Pygal绘制直方图代码示例
Dec 07 Python
python3.x实现发送邮件功能
May 22 Python
Python3中exp()函数用法分析
Feb 19 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 Python
Python常用断言函数实例汇总
Nov 30 Python
图神经网络GNN算法
May 11 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
第九节 绑定 [9]
2006/10/09 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
javascript demo 基本技巧
2009/12/18 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
从零学Python之引用和类属性的初步理解
2014/05/15 Python
windows系统下Python环境搭建教程
2017/03/28 Python
python记录程序运行时间的三种方法
2017/07/14 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python函数定义和调用过程详解
2020/02/09 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
中秋手机店促销方案
2014/06/16 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
个人租房协议书样本
2014/10/01 职场文书
讲座新闻稿
2015/07/18 职场文书
学生会主席任命书
2015/09/21 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL