利用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获取linux主机ip的简单实现方法
Apr 18 Python
Python科学画图代码分享
Nov 29 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
python使用thrift教程的方法示例
Mar 21 Python
python分割一个文本为多个文本的方法
Jul 22 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
django创建简单的页面响应实例教程
Sep 06 Python
Python集合操作方法详解
Feb 09 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
Python3+Django get/post请求实现教程详解
Feb 16 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获取表单中多个同名input元素的值
2014/03/20 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
php如何获取Http请求
2020/04/30 PHP
PHP7新增函数
2021/03/09 PHP
一些常用的Javascript函数
2006/12/22 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
Python中安装easy_install的方法
2018/11/18 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
django自带调试服务器的使用详解
2019/08/29 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
理货员的岗位职责
2013/11/23 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
2014年大学生自我评价
2014/01/19 职场文书
《石榴》教学反思
2014/03/02 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
土木工程求职信
2014/05/29 职场文书
迎新生标语大全
2014/10/06 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
浅谈react useEffect闭包的坑
2021/06/08 Javascript