利用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 合并文件的具体实例
Aug 08 Python
python使用PyFetion来发送短信的例子
Apr 22 Python
Python 描述符(Descriptor)入门
Nov 20 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
python list元素为tuple时的排序方法
Apr 18 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
详解用Python实现自动化监控远程服务器
May 18 Python
python如何实现视频转代码视频
Jun 17 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
Python语法垃圾回收机制原理解析
Mar 25 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
长波知识介绍
2021/03/01 无线电
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python 装饰器使用详解
2017/07/29 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
保安的辞职报告怎么写
2014/01/20 职场文书
飘柔洗发水广告词
2014/03/14 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
转让协议书
2015/01/27 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
车间安全生产管理制度
2015/08/06 职场文书
会议主持词通用版
2019/04/02 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang
Win11快速关闭所有广告推荐
2022/04/19 数码科技
利用Apache Common将java对象池化的问题
2022/06/16 Servers