Board logo

标题: Windows下Python3使用绘图库Matplotlib [打印本页]

作者: admin    时间: 2019-9-29 10:27     标题: Windows下Python3使用绘图库Matplotlib

Win7连接公网安装第三方库(matplotlib): pip3 install matplotlib==3.3.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com 图片1.png 列出当前环境所有已经安装的第三方库的名称和其版本号: C:\Users\jacky>pip3 freeze cycler==0.11.0 kiwisolver==1.3.1 matplotlib==3.3.0 numpy==1.19.5 Pillow==8.4.0 pyparsing==3.0.9 python-dateutil==2.8.2 six==1.16.0 C:\Users\jacky> 注释:会附带安装一些相关的依赖软件包。 ###### 例子一: 在一个窗体中绘制单个图形(线形图): 脚本内容:(C:\Users\jacky\Desktop\xx.py) #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #正常显示负号 plt.title("苹果的销量情况") #图形标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 x1 = ["一月份","二月份","三月份","四月份","五月份"] #x轴的点的值 y1 = [30,20,50,60,80] #y轴的点的值 plt.plot(x1,y1,label='',color='red',linewidth=1,linestyle='--') plt.show() #显示图形 脚本运行中的效果:(组合键Ctrl+c可结束程序的执行) 图片2.png 图片3.png ###### 例子二: 在一个窗体中绘制单个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']=False plt.title("苹果的销量情况") #图形标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 A1 = "一月份" A2 = "二月份" A3 = "三月份" A4 = "四月份" A5 = "五月份" x1 = [A1,A2,A3,A4,A5] #x轴的点的值 B1 = 30 B2 = 20 B3 = 50 B4 = 60 B5 = 80 y1 = [B1,B2,B3,B4,B5] #y轴的点的值 plt.plot(x1,y1,label='苹果',color='blue',linewidth=1.0,linestyle='--') plt.legend() #显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片4.png ###### 例子三: 在一个窗体中绘制单个图形(线形图):(保存图片,也显示图形) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果Apple的销量情况") #图形标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 A1 = "一月份" A2 = "二月份" A3 = "三月份" A4 = "四月份" A5 = "五月份" x1 = [A1,A2,A3,A4,A5] #x轴的点的值 B1 = 30 B2 = 20 B3 = 50 B4 = 60 B5 = 80 y1 = [B1,B2,B3,B4,B5] #y轴的点的值 plt.plot(x1,y1,label='苹果Apple',color='blue',linewidth=1.5,linestyle='--') plt.legend() #显示图例(label) plt.grid(True,linestyle=':',color='green',alpha=0.6) #显示网格线 plt.savefig("D:\\share\\苹果的销量情况分析图_abc.png") #保存图片;图片名称是自定义的;会把图片保存到文件夹D:\share里面;假如图片名称重复,会被直接覆盖 plt.show() #显示图形 脚本运行中的效果: 图片5.png 保存下来的图片: 图片6.png ###### 例子四: 在一个窗体中绘制单个图形(线形图):(只保存图片,不显示图形) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果Apple的销量情况") #图形标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 A1 = "一月份" A2 = "二月份" A3 = "三月份" A4 = "四月份" A5 = "五月份" x1 = [A1,A2,A3,A4,A5] #x轴的点的值 B1 = 30 B2 = 20 B3 = 50 B4 = 60 B5 = 80 y1 = [B1,B2,B3,B4,B5] #y轴的点的值 plt.plot(x1,y1,label='苹果Apple',color='red',linewidth=2,linestyle='-') plt.legend() #显示图例(label) plt.grid(True,linestyle=':',color='yellow',alpha=0.6) #显示网格线 plt.savefig("D:/share/苹果的销量情况分析图_def.png") #保存图片 脚本运行后的效果: C:\Users\jacky\Desktop>python xx.py C:\Users\jacky\Desktop> 保存下来的图片: 图片7.png 图片8.png ###### 例子五: 一次性分别在两个窗体绘制单个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False #第一个图形 plt.title("苹果Apple的销量情况") #第一个图形的标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 x1 = ["一月份","二月份","三月份","四月份","五月份"] y1 = [30,20,50,60,80] plt.plot(x1,y1,label='苹果Apple',color='red',linewidth=1.0,linestyle='--') plt.legend() #第一个图形显示图例(label) plt.figure() #新建一个窗体 #第二个图形 plt.title("梨Pear的销量情况") #第二个图形的标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 A1 = "一月份" A2 = "二月份" A3 = "三月份" x2 = [A1,A2,A3] B1 = 2.1 B2 = 3.2 B3 = 8.7 y2 = [B1,B2,B3] plt.plot(x2,y2,label='$Pear$',color='green',linewidth=2.0,linestyle='-') #label的值使用了 $ 会出现字体倾斜,但不能有中文了 plt.legend() #第二个图形显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #第二个图形显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片9.png 图片10.png ###### 例子六: 一次性分别在三个窗体绘制单个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False #第一个图形 plt.title("苹果Apple的销量情况") #第一个图形的标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 x1 = ["一月份","二月份","三月份","四月份","五月份"] y1 = [30,20,50,60,80] plt.plot(x1,y1,label='苹果Apple',color='red',linewidth=1.0,linestyle='--') plt.legend() #第一个图形显示图例(label) plt.figure() #新建一个窗体 #第二个图形 plt.title("梨Pear的销量情况") #第二个图形的标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 A1 = "一月份" A2 = "二月份" A3 = "三月份" x2 = [A1,A2,A3] B1 = 2.1 B2 = 3.2 B3 = 8.7 y2 = [B1,B2,B3] plt.plot(x2,y2,label='$Pear$',color='green',linewidth=2.0,linestyle='-') plt.legend() #第二个图形显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #第二个图形显示网格线 plt.figure() #再新建一个窗体 #第三个图形 plt.title("香蕉Banana的销量情况") #第三个图形的标题 plt.xlabel('月份') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 A1 = "一月份" A2 = "二月份" A3 = "三月份" x2 = [A1,A2,A3] B1 = 21 B2 = 32 B3 = 87 y2 = [B1,B2,B3] plt.plot(x2,y2,label='Banana',color='peru',linewidth=2.0,linestyle='-') plt.legend() #第三个图形显示图例(label) plt.grid(True,linestyle=':',color='orchid',alpha=0.6) #第三个图形显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片11.png 图片12.png 图片13.png ####### 例子七: 在同一个窗体中纵向绘制两个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False #第一个图形 plt.subplot(2,1,1) #2行1列中的第1个图形 plt.title("苹果(Apple)的销量情况") #第一个图形的标题 x1 = ["一月份","二月份","三月份","四月份"] y1 = [3,8,9,5] plt.plot(x1,y1,label='Apple',color='red',linewidth=1.0,linestyle='--') plt.xlabel('月份') #第一个图形的x轴名称 plt.ylabel('销量(斤)') #第一个图形的y轴名称 plt.legend() #第一个图形显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #第一个图形显示网格线 #第二个图形 plt.subplot(2,1,2) #2行1列中的第2个图形 plt.title("梨(Pear)的销量情况") #第二个图形的标题 x2 = ["一月份","二月份","三月份"] y2 = [2,3,9] plt.plot(x2,y2,label='$Pear$',color='green',linewidth=1.6,linestyle='-') plt.xlabel('月份') #第二个图形的x轴名称 plt.ylabel('销量(斤)') #第二个图形的y轴名称 plt.legend() #第二个图形显示图例(label) plt.grid(True,linestyle=':',color='orchid',alpha=0.6) #第二个图形显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片14.png ####### 例子八: 在同一个窗体中纵向绘制三个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False #第一个图形 plt.subplot(3,1,1) #3行1列中的第1个图形 plt.title("Welcome to zhuohua.") #第一个图形的标题 x1 = ["一月份","二月份","三月份","四月份"] y1 = [3,8,9,5] plt.plot(x1,y1,label='苹果Apple',color='red',linewidth=1.6,linestyle='--') plt.legend() #第一个图形显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #第一个图形显示网格线 #第二个图形 plt.subplot(3,1,2) #3行1列中的第2个图形 x2 = ["一月份","二月份","三月份"] y2 = [2,3,9] plt.plot(x2,y2,label='梨',color='green',linewidth=1.6,linestyle='-') plt.ylabel('销量(斤)') #第二个图形的y轴名称 plt.legend() #第二个图形显示图例(label) plt.grid(True,linestyle=':',color='orchid',alpha=0.6) #第二个图形显示网格线 #第三个图形 plt.subplot(3,1,3) #3行1列中的第3个图形 x3 = ["一月份","二月份","三月份"] y3 = [12.2,13.7,9.6] plt.plot(x3,y3,label='香蕉',color='yellow',linewidth=2,linestyle='-') plt.xlabel('月份') #第三个图形的x轴名称 plt.legend() #第三个图形显示图例(label) plt.show() #显示图形 脚本运行中的效果: 图片15.png ####### 例子九: 在同一个窗体中横向绘制两个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False #第一个图形 plt.subplot(1,2,1) #1行2列中的第1个图形 x1 = ["一月份","二月份"] y1 = [80.7,60.8] plt.title("苹果销量情况") #第一个图形的标题 plt.plot(x1,y1,label='Apple',color='red',linewidth=1.0,linestyle='--') plt.xlabel('Month') #第一个图形显示x轴名称 plt.ylabel('销量(斤)') #第一个图形显示y轴名称 plt.legend() #第一个图形显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #第一个图形显示网格线 #第二个图形 plt.subplot(1,2,2) #1行2列中的第2个图形 x2 = ["一月份","二月份","三月份"] y2 = [2,3,9] plt.title("梨的销量情况") #第二个图形的标题 plt.plot(x2,y2,label='$Pear$',color='green',linewidth=1.0,linestyle='-') plt.xlabel('Month') #第二个图形显示x轴名称 plt.legend() #第二个图形显示图例(label) plt.grid(True,linestyle=':',color='orchid',alpha=0.6) #第二个图形显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片16.png ####### 例子十: 在同一个窗体中横向绘制三个图形(线形图): 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False #第一个图形 plt.subplot(1,3,1) #1行3列中的第1个图形 x1 = ["一月份","二月份"] y1 = [80.7,60.8] plt.title("苹果销量情况") #第一个图形的标题 plt.plot(x1,y1,label='Apple',color='red',linewidth=1.0,linestyle='--') plt.ylabel('销量(斤)') #第一个图形显示y轴名称 plt.legend() #第一个图形显示图例(label) plt.grid(True,linestyle=':',color='red',alpha=0.6) #第一个图形显示网格线 #第二个图形 plt.subplot(1,3,2) #1行3列中的第2个图形 x2 = ["一月份","二月份"] y2 = [2,3] plt.title("梨的销量情况") #第二个图形的标题 plt.plot(x2,y2,label='$Pear$',color='green',linewidth=1.0,linestyle='-') plt.xlabel('Month') #第二个图形显示x轴名称 plt.legend() #第二个图形显示图例(label) #第三个图形 plt.subplot(1,3,3) #1行3列中的第3个图形 x2 = ["一月份","二月份"] y2 = [12,23] plt.title("香蕉的销量情况") #第三个图形的标题 plt.plot(x2,y2,label='香蕉',color='yellow',linewidth=2.0,linestyle='-') plt.show() #显示图形 脚本运行中的效果: 图片17.png ####### 例子十一: 在同一个图形(线形图)中绘制两条数据线: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果、梨的销量情况") #图形的标题 x1 = ["一月份","二月份","三月份","四月份","五月份"] #x轴的点的值 y1 = [3,8,9,5,7.8] #第一条数据线的y轴的点的值 plt.plot(x1,y1,label='$Apple$',color='red',linewidth=1.0,linestyle='--') y2 = [2,3,9,5.5,7] #第二条数据线的y轴的点的值 plt.plot(x1,y2,label='Pear',color='green',linewidth=1.0,linestyle='-') plt.legend() #显示图例(label) plt.xlabel('月份') #显示x轴名称 plt.ylabel('销量(斤)') #显示y轴名称 plt.grid(True,linestyle=':',color='red',alpha=0.6) #显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片18.png ####### 例子十二: 在同一个图形(线形图)中绘制三条数据线: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果、梨、香蕉的销量情况") #图形的标题 x1 = ["一月份","二月份","三月份","四月份","五月份"] #x轴的点的值 y1 = [3,8,9,5,7.8] #第一条数据线的y轴的点的值 plt.plot(x1,y1,label='$Apple$',color='red',linewidth=1.0,linestyle='--') y2 = [2,3,9,5.5,7] #第二条数据线的y轴的点的值 plt.plot(x1,y2,label='Pear',color='green',linewidth=1,linestyle='-') A1 = 3 A2 = 5 A3 = 6 A4 = 3.8 A5 = 7 y3 = [A1,A2,A3,A4,A5] #第三条数据线的y轴的点的值 plt.plot(x1,y3,label='香蕉',color='yellow',linewidth=1.6,linestyle='-') plt.legend() #显示图例(label) plt.ylabel('销量(斤)') #显示y轴名称 plt.grid(True,linestyle=':',color='red',alpha=0.6) #显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片19.png ####### 例子十三: 在一个窗体中绘制饼形图:(显示百分比) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) #自定义窗体的宽和高 Labels = ['Mon','Tue','Wed','Thu','Fri','Saturday','星期日'] #一周中的每一天 Data = [18,20.2,5.6,15.3,20,15,15] #一周中每一天的销量值 plt.title("苹果一周销量情况(百分比)") #图形标题 plt.pie(Data,labels=Labels,autopct='%1.1f%%') #百分比保留一位小数 plt.legend() #显示图例(label) plt.axis('equal') #设置x、y轴的尺寸相等,使饼形图为正圆形 plt.show() #显示图形 脚本运行中的效果: 图片1.png ####### 例子十四: 在一个窗体中绘制饼形图:(显示饼图阴影) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) Labels = ['Mon','Tue','Wed','Thu','Fri','Saturday','星期日'] Data = [18,20.2,5.6,15.3,20,15,15] plt.title("苹果一周销量情况(百分比)") #图形标题 plt.pie(Data,labels=Labels,autopct='%1.1f%%',shadow=True) #饼图阴影 plt.legend() plt.axis('equal') plt.show() 脚本运行中的效果: 图片2.png ####### 例子十五: 在一个窗体中绘制饼形图:(显示饼图分离) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) Labels = ['Mon','Tue','Wed','Thu','Fri','Saturday','星期日'] Data = [18,20.2,5.6,15.3,20,15,15] #饼图分离 Explode = (0,0,0.1,0,0,0,0) #第三个标签分离 plt.title("苹果一周销量情况(百分比)") #图形标题 plt.pie(Data,labels=Labels,autopct='%1.1f%%',explode=Explode) #饼图分离 plt.legend() plt.axis('equal') plt.show() 脚本运行中的效果: 图片3.png ####### 例子十六: 在一个窗体中绘制饼形图:(显示饼图分离+阴影) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] #饼图分离 Explode = (0,0,0.1,0,0.1,0,0) #第三、五个标签分离 plt.title("苹果一周销量情况(百分比)") #图形标题 plt.pie(Data,labels=Labels,autopct='%1.1f%%',explode=Explode,shadow=True) #饼图分离+阴影 plt.legend() plt.axis('equal') plt.show() 脚本运行中的效果: 图片4.png ####### 例子十七: 在一个窗体中绘制饼形图:(设置饼图字体) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] plt.title("苹果一周销量情况(百分比)") #图形标题 plt.pie(Data,labels=Labels,autopct='%1.2f%%',textprops={'fontsize':10,'color':'blue'}) #百分比保留两位小数;自定义字体大小,字体设置为蓝色 plt.legend() plt.axis('equal') plt.show() 脚本运行中的效果: 图片5.png ####### 例子十八: 在一个窗体中绘制饼形图:(显示百分比+实际值) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] plt.title("苹果一周销量情况(百分比+实际值)") #图形标题 def func1(Data): def func2(pct): total = sum(Data) val = int(round(pct*total/100.0)) #不保留小数 #同时显示百分比、实际值 return '{p:.0f}% ({v:d}斤)'.format(p=pct,v=val) #不保留小数 return func2 plt.pie(Data, labels=Labels, autopct=func1(Data)) plt.legend() #显示图例(label) plt.axis('equal') plt.show() 脚本运行中的效果: 图片6.png ####### 例子十九: 在一个窗体中绘制饼形图:(显示百分比+实际值) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] plt.title("苹果一周销量情况(百分比+实际值)") #图形标题 def func1(Data): def func2(pct): total = sum(Data) val = float(round(pct*total/100.0,1)) #保留一位小数 #同时显示百分比、实际值 return '{p:.1f}% ({v:.1f}斤)'.format(p=pct,v=val) #保留一位小数 return func2 plt.pie(Data, labels=Labels, autopct=func1(Data)) plt.legend() #显示图例(label) plt.axis('equal') plt.show() 脚本运行中的效果: 图片7.png ####### 例子二十: 在一个窗体中绘制饼形图:(显示百分比+实际值) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] #饼图分离 Explode = (0.1,0,0,0.1,0,0,0) #第一、四个标签分离 plt.title("苹果一周销量情况(百分比+实际值)") #图形标题 def func1(Data): def func2(pct): total = sum(Data) val = float(round(pct*total/100.0,2)) #保留两位小数 #同时显示百分比、实际值 return '{p:.2f}% ({v:.2f}斤)'.format(p=pct,v=val) #保留两位小数 return func2 plt.pie(Data, labels=Labels, autopct=func1(Data),explode=Explode) #饼图分离 plt.legend() plt.axis('equal') plt.show() 脚本运行中的效果: 图片8.png ####### 例子二十一: 在一个窗体中绘制饼形图:(显示百分比+实际值) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] #饼图分离 Explode = (0,0,0,0,0,0.1,0.1) #第六、七个标签分离 plt.title("苹果一周销量情况(百分比+实际值)") #图形标题 def func1(Data): def func2(pct): total = sum(Data) val = float(round(pct*total/100.0,3)) #保留三位小数 #同时显示百分比、实际值 return '{p:.3f}% ({v:.3f}斤)'.format(p=pct,v=val) #保留三位小数 return func2 plt.pie(Data, labels=Labels, autopct=func1(Data),explode=Explode,shadow=True) #饼图分离+阴影 plt.legend() #显示图例(label) plt.axis('equal') plt.show() 脚本运行中的效果: 图片9.png ####### 例子二十二: 在一个窗体中绘制饼形图:(显示实际值) 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize=(8,5)) A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' A6 = 'Saturday' A7 = '星期日' Labels = [A1,A2,A3,A4,A5,A6,A7] B1 = 18 B2 = 20.2 B3 = 5.6 B4 = 15.3 B5 = 20 B6 = 15 B7 = 15 Data = [B1,B2,B3,B4,B5,B6,B7] #饼图分离 Explode = (0,0,0,0,0,0.1,0.1) #第六、七个标签分离 plt.title("苹果一周销量情况(实际值)") #图形标题 def func1(Data): def func2(pct): total = sum(Data) val = float(round(pct*total/100.0,2)) #保留两位小数 #只显示实际值 return '{v:.2f}斤'.format(p=pct,v=val) #保留两位小数 return func2 plt.pie(Data, labels=Labels, autopct=func1(Data),explode=Explode,shadow=True) #饼图分离+阴影 plt.legend() #显示图例(label) plt.axis('equal') plt.show() 脚本运行中的效果: 图片10.png ####### 例子二十三: 在一个窗体中绘制横向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果销量情况") #图形标题 N = 5 y = np.arange(N) x = [20, 10, 30, 25, 15] #x轴的点的值 A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' Labels = [A1,A2,A3,A4,A5] #y轴的点的值 # height 条形的宽度, width 条形的长度 plt.bar(x=0,bottom=y,height=0.5,width=x,orientation="horizontal",tick_label=Labels) plt.show() #显示图形 脚本运行中的效果: 图片1.png ####### 例子二十四: 在一个窗体中绘制横向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果销量情况") #图形标题 plt.xlabel('销量(斤)') #x轴名称 plt.ylabel('日期') #y轴名称 N = 5 y = np.arange(N) x = [20, 10, 30, 25, 15] #x轴的点的值 A1 = 'Mon' A2 = 'Tue' A3 = 'Wed' A4 = 'Thu' A5 = 'Fri' Labels = [A1,A2,A3,A4,A5] #y轴的点的值 Color=['red','peru'] #条形的填充颜色 # height 条形的宽度, width 条形的长度 plt.bar(x=0,bottom=y,height=0.8,width=x,orientation="horizontal",tick_label=Labels,color=Color) plt.show() #显示图形 脚本运行中的效果: 图片2.png ####### 例子二十五: 在一个窗体中绘制横向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果销量情况") #图形标题 plt.xlabel('销量(斤)') #x轴名称 plt.ylabel('日期') #y轴名称 N = 4 y = np.arange(N) A1 = 20 A2 = 10 A3 = 30 A4 = 25 x = [A1,A2,A3,A4] #x轴的点的值 B1 = 'Mon' B2 = 'Tue' B3 = 'Wed' B4 = 'Thu' Labels = [B1,B2,B3,B4] #y轴的点的值 Color=['red','peru','blue','yellow'] #条形的填充颜色 # height 条形的宽度, width 条形的长度 plt.bar(x=0,bottom=y,height=0.8,width=x,orientation="horizontal",tick_label=Labels,color=Color) plt.grid(True,linestyle=':',color='red',alpha=0.6) #显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片3.png ####### 例子二十六: 在一个窗体中绘制竖向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果一周销量情况") #图形标题 plt.xlabel('日期') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 N = 7 X = np.arange(N) Color=['red','peru'] Labels = ['Mon','Tue','Wed','Thu','Fri','Saturday','星期日'] Data = [18,20,5,15,20,15,15.8] plt.bar(X,Data,alpha=0.8,color=Color,tick_label=Labels) plt.grid(True,linestyle=':',color='red',alpha=0.6) #显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片4.png ####### 例子二十七: 在一个窗体中绘制竖向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果一周销量情况") #图形标题 plt.xlabel('日期') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 N = 7 X = np.arange(N) A1 = 'red' A2 = 'black' A3 = 'peru' A4 = 'orchid' A5 = 'deepskyblue' A6 = 'blue' A7 = 'yellow' Color = [A1,A2,A3,A4,A5,A6,A7] B1 = 'Mon' B2 = 'Tue' B3 = 'Wed' B4 = 'Thu' B5 = 'Fri' B6 = 'Saturday' B7 = '星期日' Labels = [B1,B2,B3,B4,B5,B6,B7] C1 = 18 C2 = 20 C3 = 5 C4 = 15 C5 = 20 C6 = 15 C7 = 15.8 Data = [C1,C2,C3,C4,C5,C6,C7] plt.bar(X,Data,alpha=0.8,color=Color,tick_label=Labels) plt.grid(True,linestyle=':',color='blue',alpha=0.6) #显示网格线 plt.show() #显示图形 脚本运行中的效果: 图片5.png ####### 例子二十八: 在一个窗体中绘制并列竖向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果、梨销量情况") #图形标题 plt.xlabel('日期') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 N = 4 X = np.arange(N) B1 = 'Mon' B2 = 'Tue' B3 = 'Wed' B4 = 'Thu' Labels = [B1,B2,B3,B4] #x轴的点的值 Apple = [52,55,63,53] #苹果的y轴的点的值 Pear = [44,66,55,41] #梨的y轴的点的值 bar_width = 0.3 #条形的宽度 plt.bar(X, Apple, bar_width,label='苹果',color='red') plt.bar(X + bar_width, Pear, bar_width, label='梨',tick_label=Labels,color='blue') plt.legend() #显示图例(label) plt.show() #显示图形 脚本运行中的效果: 图片6.png ####### 例子二十九: 在一个窗体中绘制并列竖向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果、梨、香蕉销量情况") #图形标题 plt.xlabel('日期') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 N = 3 X = np.arange(N) B1 = 'Mon' B2 = 'Tue' B3 = 'Wed' Labels = [B1,B2,B3] #x轴的点的值 Apple = [52,55,63] #苹果的y轴的点的值 Pear = [44,66,55] #梨的y轴的点的值 Banana = [44,66,58] #香蕉的y轴的点的值 bar_width = 0.3 #条形的宽度 plt.bar(X, Apple, bar_width,label='苹果',color='red') plt.bar(X + bar_width, Pear, bar_width,label='梨',color='blue') plt.bar(X + bar_width + bar_width, Banana, bar_width, label='香蕉',tick_label=Labels,color='yellow') plt.legend() #显示图例(label) plt.show() #显示图形 脚本运行中的效果: 图片7.png ####### 例子三十: 在一个窗体中绘制叠加竖向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果、梨销量情况") #图形标题 plt.xlabel('日期') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 N = 4 X = np.arange(N) B1 = 'Mon' B2 = 'Tue' B3 = 'Wed' B4 = 'Thu' Labels = [B1,B2,B3,B4] #x轴的点的值 Apple = np.array([52,55,63,53]) #苹果的y轴的点的值 Pear = np.array([44,66,55,41]) #梨的y轴的点的值 bar_width = 0.3 #条形的宽度 plt.bar(X, Apple, bar_width, label='苹果',color='red') plt.bar(X, Pear, bar_width, label='梨',color='blue',tick_label=Labels, bottom=Apple) #苹果的值在梨的值下面 plt.legend() #显示图例(label) plt.show() #显示图形 脚本运行中的效果: 图片8.png 笺注:通过叠加竖向条形图可以看到总量、各部分的比例情况。 ####### 例子三十一: 在一个窗体中绘制叠加竖向条形图: 脚本内容: #coding=utf-8 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("苹果、梨、香蕉销量情况") #图形标题 plt.xlabel('日期') #x轴名称 plt.ylabel('销量(斤)') #y轴名称 N = 4 X = np.arange(N) B1 = 'Mon' B2 = 'Tue' B3 = 'Wed' B4 = 'Thu' Labels = [B1,B2,B3,B4] #x轴的点的值 Apple = np.array([52,55,63,53]) #苹果的y轴的点的值 Pear = np.array([44,66,55,41]) #梨的y轴的点的值 Banana = np.array([44,66,58,12]) #香蕉的y轴的点的值 bar_width = 0.3 #条形的宽度 plt.bar(X, Apple, bar_width, label='苹果',color='red') plt.bar(X, Pear, bar_width, label='梨',color='blue', bottom=Apple) plt.bar(X, Banana, bar_width, label='香蕉',color='yellow',tick_label=Labels, bottom=Apple+Pear) plt.legend() #显示图例(label) plt.show() #显示图形 脚本运行中的效果: 图片9.png ####### ####### Windows卸载第三方库(matplotlib): C:\Users\jacky\Desktop>pip3 uninstall matplotlib -y Uninstalling matplotlib-3.3.0: Successfully uninstalled matplotlib-3.3.0 C:\Users\jacky\Desktop> 列出当前环境所有已经安装的第三方库的名称和其版本号: C:\Users\jacky\Desktop>pip3 freeze cycler==0.11.0 kiwisolver==1.3.1 numpy==1.19.5 Pillow==8.4.0 pyparsing==3.0.9 python-dateutil==2.8.2 six==1.16.0 C:\Users\jacky\Desktop> 注释:安装第三方库(matplotlib)时附带安装的一些相关依赖软件包不会被卸载。 相关文章: Windows下Python3管理Excel表+绘图库Matplotlib Windows下Python3管理Access+绘图库Matplotlib Pandas+Excel+绘图库Matplotlib

图片附件: 图片1.png (2022-7-24 13:05, 32.64 KB) / 下载次数 73
http://blog.zhuohua.store/attachment.php?aid=20086&k=38618666f137e87c9ddc2f4f553d50f7&t=1714620407&sid=4gAgRv



图片附件: 图片2.png (2022-7-24 13:06, 11.49 KB) / 下载次数 68
http://blog.zhuohua.store/attachment.php?aid=20087&k=6fd4841a609202f68a035e76e66b657d&t=1714620407&sid=4gAgRv



图片附件: 图片3.png (2022-7-24 13:07, 87.49 KB) / 下载次数 69
http://blog.zhuohua.store/attachment.php?aid=20088&k=f2acc9d44ae23df6abb33fd28f58e384&t=1714620407&sid=4gAgRv



图片附件: 图片4.png (2022-7-24 13:07, 128.18 KB) / 下载次数 57
http://blog.zhuohua.store/attachment.php?aid=20089&k=e7de169019fb0f03231d7dd1e525cb17&t=1714620407&sid=4gAgRv



图片附件: 图片5.png (2022-7-24 13:09, 148.63 KB) / 下载次数 62
http://blog.zhuohua.store/attachment.php?aid=20090&k=04cb2f458ac0f9a080a71e5b3dbf5c76&t=1714620407&sid=4gAgRv



图片附件: 图片6.png (2022-7-24 13:09, 57.71 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20091&k=19bc65164b95b74d32f5c9d4929619c1&t=1714620407&sid=4gAgRv



图片附件: 图片7.png (2022-7-24 13:10, 68.23 KB) / 下载次数 71
http://blog.zhuohua.store/attachment.php?aid=20092&k=262a8b0e085f800edbd12fc56e116c41&t=1714620407&sid=4gAgRv



图片附件: 图片8.png (2022-7-24 13:10, 73.33 KB) / 下载次数 62
http://blog.zhuohua.store/attachment.php?aid=20093&k=1da851a78f1d54477a1d6fc336809eec&t=1714620407&sid=4gAgRv



图片附件: 图片9.png (2022-7-24 13:11, 57.25 KB) / 下载次数 52
http://blog.zhuohua.store/attachment.php?aid=20094&k=bde3b4474c3f8a416949d47b43f09569&t=1714620407&sid=4gAgRv



图片附件: 图片10.png (2022-7-24 13:11, 83.74 KB) / 下载次数 63
http://blog.zhuohua.store/attachment.php?aid=20095&k=8d0f29a3a08ad3aa3316dc11803fdbbe&t=1714620407&sid=4gAgRv



图片附件: 图片11.png (2022-7-24 13:12, 71.76 KB) / 下载次数 66
http://blog.zhuohua.store/attachment.php?aid=20096&k=f9607b8cb135973ad502794413df6ef2&t=1714620407&sid=4gAgRv



图片附件: 图片12.png (2022-7-24 13:12, 108.59 KB) / 下载次数 62
http://blog.zhuohua.store/attachment.php?aid=20097&k=55291e01ed9cc38f36c00d307f7d1689&t=1714620407&sid=4gAgRv



图片附件: 图片13.png (2022-7-24 13:13, 113.8 KB) / 下载次数 64
http://blog.zhuohua.store/attachment.php?aid=20098&k=43681a990014a0dad88651051f63d8a5&t=1714620407&sid=4gAgRv



图片附件: 图片14.png (2022-7-24 13:13, 147.15 KB) / 下载次数 59
http://blog.zhuohua.store/attachment.php?aid=20099&k=c601ec134341fa5716f2dbba7e2b2ca2&t=1714620407&sid=4gAgRv



图片附件: 图片15.png (2022-7-24 13:14, 135.99 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20100&k=dde9696fc946909da4660451f4b4fbe2&t=1714620407&sid=4gAgRv



图片附件: 图片16.png (2022-7-24 13:15, 159.94 KB) / 下载次数 36
http://blog.zhuohua.store/attachment.php?aid=20101&k=c2e9bf36b2eaf159920c6b624b048587&t=1714620407&sid=4gAgRv



图片附件: 图片17.png (2022-7-24 13:15, 142.84 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20102&k=cb1a51db0c636178421bfcce4f430339&t=1714620407&sid=4gAgRv



图片附件: 图片18.png (2022-7-24 13:16, 153.26 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20103&k=1719b85e081e1240321fee2216be3da0&t=1714620407&sid=4gAgRv



图片附件: 图片19.png (2022-7-24 13:16, 167.64 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20104&k=c3a899c74c529aa1f8bb36daadcbd9b6&t=1714620407&sid=4gAgRv



图片附件: 图片1.png (2022-7-24 13:30, 84.24 KB) / 下载次数 33
http://blog.zhuohua.store/attachment.php?aid=20105&k=8448ffacaa5830bdb48e19fedaaf1542&t=1714620407&sid=4gAgRv



图片附件: 图片2.png (2022-7-24 13:31, 96.45 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20106&k=8b73acd13251a7fe33996aef14e6e2bf&t=1714620407&sid=4gAgRv



图片附件: 图片3.png (2022-7-24 13:31, 94.83 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20107&k=35ee966b5a9a79d5ac7447b74e880ee9&t=1714620407&sid=4gAgRv



图片附件: 图片4.png (2022-7-24 13:32, 109.77 KB) / 下载次数 31
http://blog.zhuohua.store/attachment.php?aid=20108&k=9721b29690db7cb9b2c8c5f4b44246d8&t=1714620407&sid=4gAgRv



图片附件: 图片5.png (2022-7-24 13:33, 89.69 KB) / 下载次数 32
http://blog.zhuohua.store/attachment.php?aid=20109&k=b62f737185de97c3a7df601094a13b17&t=1714620407&sid=4gAgRv



图片附件: 图片6.png (2022-7-24 13:35, 100.85 KB) / 下载次数 34
http://blog.zhuohua.store/attachment.php?aid=20110&k=ff08d89d4217ea2dd5179d8fd5017861&t=1714620407&sid=4gAgRv



图片附件: 图片7.png (2022-7-24 13:36, 107.69 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20111&k=6c8848208970bdeea776a812954ea398&t=1714620407&sid=4gAgRv



图片附件: 图片8.png (2022-7-24 13:37, 131.45 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20112&k=7930f2116b421e4464dce55dc86cc280&t=1714620407&sid=4gAgRv



图片附件: 图片9.png (2022-7-24 13:38, 134.58 KB) / 下载次数 30
http://blog.zhuohua.store/attachment.php?aid=20113&k=ffee03eb07118e54b7dfe66a40b2557a&t=1714620407&sid=4gAgRv



图片附件: 图片10.png (2022-7-24 13:39, 112.39 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20114&k=e1a1fb838c9abc5d8f259b5f3e8fa7f0&t=1714620407&sid=4gAgRv



图片附件: 图片1.png (2022-7-24 13:47, 57.12 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20115&k=174e89b536426b02bb2f8223f27ff5b9&t=1714620407&sid=4gAgRv



图片附件: 图片2.png (2022-7-24 13:49, 62.38 KB) / 下载次数 26
http://blog.zhuohua.store/attachment.php?aid=20116&k=bd576a7d64d9521fdd883759a510245a&t=1714620407&sid=4gAgRv



图片附件: 图片3.png (2022-7-24 13:50, 100.93 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20117&k=d7d9e8411bfdb1ab50f70d04e1fbab5c&t=1714620407&sid=4gAgRv



图片附件: 图片4.png (2022-7-24 13:50, 137.57 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20118&k=74083a0839415d9e9536dde2d6c02f75&t=1714620407&sid=4gAgRv



图片附件: 图片5.png (2022-7-24 13:51, 152.91 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20119&k=9802cec3c37d10988cfcde1f2cf89d5b&t=1714620407&sid=4gAgRv



图片附件: 图片6.png (2022-7-24 13:52, 65.4 KB) / 下载次数 20
http://blog.zhuohua.store/attachment.php?aid=20120&k=8a1988ea1ee3f6eac67405fa511c254f&t=1714620407&sid=4gAgRv



图片附件: 图片7.png (2022-7-24 13:53, 69.63 KB) / 下载次数 30
http://blog.zhuohua.store/attachment.php?aid=20121&k=e9626b77d542d59cb66cc09cfa263b0f&t=1714620407&sid=4gAgRv



图片附件: 图片8.png (2022-7-24 13:53, 67.16 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20122&k=0091d7e844b0617f67f8f85b3cb21d98&t=1714620407&sid=4gAgRv



图片附件: 图片9.png (2022-7-24 13:55, 71.77 KB) / 下载次数 19
http://blog.zhuohua.store/attachment.php?aid=20123&k=cdc9062cdf3d0d52ec37534ec484b36e&t=1714620407&sid=4gAgRv






欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2