利用python画一颗心的方法示例

前言

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能带来一定的帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • 用python实现简单EXCEL数据统计的实例

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_workbook('demo.xlsx') #打开excel数据表 SheetList = workbook.sheet_names()#读取电子表到列表 SheetName = SheetList[0]#读取第一个电子表的名称 Sheet1 = workbook.sheet_by_index(0)

  • python中import学习备忘笔记

    前言 在python的模块有两种组织方式,一种是单纯的python文件,文件名就是模块名,一种是包,包是一个包含了若干python文件的目录,目录下必须有一个文件__init__.py,这样目录名字就是模块名,包里的python文件也可以通过包名.文件名的方式import import语法 import语法有两种 1.直接import模块 import Module import Module as xx 2.从模块import对象(下级模块,类,函数,变量等) from Module impo

  • Python爬虫包 BeautifulSoup 递归抓取实例详解

    Python爬虫包 BeautifulSoup  递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另一个URL,然后获得这个URL的页面内容,不断重复这一个过程. 让我们以维基百科为一个例子. 我们想要将维基百科中凯文·贝肯词条里所有指向别的词条的链接提取出来. # -*- coding: utf-8 -*- # @Author: HaonanWu # @Date: 2016-12-25 10:

  • Python中的lstrip()方法使用简介

    lstrip()方法返回所有字符被去除开头字符串(缺省为空格字符)的一个复本. 语法 以下是lstrip()方法的语法: str.lstrip([chars]) 参数 chars -- 您提供要剪裁的字符. 返回值 此方法返回所有字符都被去除字符串开头(缺省为空格字符)的字符串的一个复本. 例子 下面的例子显示了lstrip()方法的使用. #!/usr/bin/python str = " this is string example....wow!!! "; print str.l

  • 利用Python脚本实现ping百度和google的方法

    Ping服务 ping 是基于 XML_RPC 标准协议的更新通告服务,用于Blog把内容更新快速通知给搜索引擎,以便搜索引擎及时进行抓取和更新. 计算机就相当于 RPC Client ,用于向 RPC Server 发起请求,并接受方法的执行结果. Python实现方法 Python 内置了 XMLRPClib ,可以很方便地处理XMLRPC协议,免去了封包解包的麻烦. 用法很简单,首先导入库: import xmlrpclib 生成xmlrpc服务器对象: sever = xmlrpclib

  • 在Python中操作字符串之rstrip()方法的使用

    rstrip()方法返回所有字符都被去除的字符串(缺省为空格字符)结束字符串的副本. 语法 以下是rstrip()方法的语法: str.rstrip([chars]) 参数 chars -- 可以提供要去除的字符. 返回值 此方法返回的所有字符都被去除的字符串(缺省为空格字符)结束字符串的副本. 例子 下面的例子显示了rstrip()方法的使用. #!/usr/bin/python str = " this is string example....wow!!! "; print st

  • python strip()函数 介绍

    函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符 s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符 注意: 1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ') 例如: 复制代码 代码如下: >>> a = '     123'>>

  • Python中使用strip()方法删除字符串中空格的教程

    strip()方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本. 语法 以下是strip()方法的语法: str.strip([chars]); 参数 chars -- 字符-从开始或结束的字符串被删除去除. 返回值 此方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本. 例子 下面的例子显示了strip()方法的使用. #!/usr/bin/python str = "0000000this is string example....w

  • python strip() 函数和 split() 函数的详解及实例

     python strip() 函数和 split() 函数的详解及实例 一直以来都分不清楚strip和split的功能,实际上strip是删除的意思:而split则是分割的意思.因此也表示了这两个功能是完全不一样的,strip可以删除字符串的某些字符,而split则是根据规定的字符将字符串进行分割.下面就详细说一下这两个功能, 1 Python strip()函数 介绍 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)       删除s字符串中开头.结尾处,位于 r

  • 利用python画一颗心的方法示例

    前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是'让简单的事情简单,让复杂的事情变得可能'.用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统计图形,这些图形可以导出为多种具有出版质量的格式.此外,它和ipython结合使用,确实方便,谁用谁知道!本文将介绍利用python中的matplotlib画一颗心,感兴趣的朋友们下面来一起看看吧. 安装matplotlib 首先要安装matplotlib pip install matplotli

  • 利用Python过滤相似文本的简单方法示例

    问题 假设你在存档中有成千上万的文档,其中许多是彼此重复的,即使文档的内容相同,标题不同. 现在想象一下,现在老板要求你通过删除不必要的重复文档来释放一些空间. 问题是:如何过滤标题足够相似的文本,以使内容可能相同? 接下来,如何实现此目标,以便在完成操作时不会删除过多的文档,而保留一组唯一的文档? 让我们用一些代码使它更清楚: titles = [ "End of Year Review 2020", "2020 End of Year", "Janua

  • 利用python批量修改word文件名的方法示例

    前言 最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完毕的文件的文件名全丢了,所有的文件只有代号,如下面的图: 几万个文件这要是手动的改得要改到明年.所以便动手写了一个python的脚本程序来代替这种繁杂的操作. 实现分析 想让程序来理解我的word文档里到底是什么内容是不可能的了,但是好在我的word文档内容都有标题,大部分的标题正好就是这个文档的文件名,于是我便打算把文档的标题当作文件名,而

  • 利用Python如何画一颗心、小人发射爱心

    源码: #!/usr/bin/env python # -*- coding:utf-8 -*- import turtle import time # 画心形圆弧 def hart_arc(): for i in range(200): turtle.right(1) turtle.forward(2) def move_pen_position(x, y): turtle.hideturtle() # 隐藏画笔(先) turtle.up() # 提笔 turtle.goto(x, y) #

  • 利用python打开摄像头及颜色检测方法

    最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,-下面我就汇报下今天的学习成果吧 小编运行环境unbuntu 14.0.4 首先我们先安装一下Python呗,我用的2.7,其实特别简单,一行指令就OK sudo apt-get install python-dev 一般安装系统的时候其实python已经自带了,这步基本可以不用做,OK,我们继续往下走吧,安装python-openc

  • 利用Python读取txt文档的方法讲解

    在G:/PythonPractise文件夹下新建一个名为record.txt的文本文档,写入如下图所示四行内容并保存. 打开python3的idle,开始写代码. 方法一代码和运行结果如下: 如上面运行结果所示,上面的结果是省略end=的写法,等价于end="\n"(回车); 下面的结果是end=""(空字符串)的写法,等价于end="\r"(换行) 方法二代码和运行结果如下: 方法三代码结果如下: 比较三种方法,方法一先将该路径下的文件返回成一

  • 利用python提取wav文件的mfcc方法

    如下所示: import scipy.io.wavfile as wav from python_speech_features import mfcc fs, audio = wav.read("abc.wav") feature_mfcc = mfcc(audio, samplerate=fs) print(feature_mfcc) print(feature_mfcc.shape) 注:python_speech_features 不存在, 通过 pip install pyt

  • 利用python修改json文件的value方法

    做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形.为此写了修改json文件的python脚本供工程后续调用. 代码如下: # coding=utf-8 //设置文本格式 import os,sys import json def get_new_json(filepath,key,value): key_ = key.split(".") key_length = len(key_) with open(filepath, 'rb') as

  • 利用Python正则表达式过滤敏感词的方法

    问题描述:很多网站会对用户发帖内容进行一定的检查,并自动把敏感词修改为特定的字符. 技术要点: 1)Python正则表达式模块re的sub()函数: 2)在正则表达式语法中,竖线"|"表示二选一或多选一. 参考代码: 以上这篇利用Python正则表达式过滤敏感词的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer from sklearn import metrics from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import pylab as p

随机推荐