matplotlib绘图
Matplotlib之绘制精美的图表PPT(82张)

7
快速绘图
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2) plt.plot(x,z,"b--",label="$cos(x^2)$“)
8
快速绘图
接下来通过一系列函数设置绘图对象的各 个属性: plt.xlabel("Time(s)")
plt.ylabel("Volt") plt.title("PyPlot First Example") plt.ylim(-1.2,1.2) plt.legend()
• xlabel / ylabel : 设置X轴/Y轴的文字 • title : 设置图表的标题 • ylim : 设置Y轴的范围 • legend : 显示图示
14
快速绘图
下面的程序创建3行2列共6个轴,通过 axisbg参数给每个轴设置不同的背景颜色。
for idx, color in enumerate("rgbyck"): plt.subplot(320+idx+1, axisbg=color)
实际上不需要调用show()显示图表, 可以直接用savefig()将图表保存成图像文件. 使用这种方法可以很容易编写出 批量输出图表 的程序.
12
快速绘图
绘制多轴图
一个绘图对象(figure)可以包含多个轴 (axis),在Matplotlib中用轴表示一个绘图区 域,可以将其理解为子图。上面的第一个例子 中,绘图对象只包括一个轴,因此只显示了一 个轴(子图(Axes) )。可以使用subplot函数快 速绘制有多个轴的图表。subplot函数的调用 形式如下:
Python利用matplotlib模块数据可视化绘制3D图

Python利⽤matplotlib模块数据可视化绘制3D图⽬录前⾔1matplotlib绘制3D图形2绘制3D画⾯图2.1源码2.2效果图3绘制散点图3.1源码3.2效果图4绘制多边形4.1源码4.2效果图5三个⽅向有等⾼线的3D图5.1源码5.2效果图6三维柱状图6.1源码6.2效果图7补充图7.1源码7.2效果图总结前⾔matplotlib实际上是⼀套⾯向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、⽂字Text、刻度等在内存中都有⼀个对象与之对应。
为了⽅便快速绘图matplotlib通过pyplot模块提供了⼀套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。
我们只需要调⽤pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。
pyplot模块虽然⽤法简单,但不适合在较⼤的应⽤程序中使⽤。
为了将⾯向对象的绘图库包装成只使⽤函数的调⽤接⼝,pyplot模块的内部保存了当前图表以及当前⼦图等信息。
当前的图表和⼦图可以使⽤plt.gcf()和plt.gca()获得,分别表⽰"Get Current Figure"和"Get Current Axes"。
在pyplot模块中,许多函数都是对当前的Figure或Axes对象进⾏处理,⽐如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调⽤ax.plot()⽅法实现真正的绘图。
可以在Ipython中输⼊类似"plt.plot??"的命令查看pyplot模块的函数是如何对各种绘图对象进⾏包装的。
1 matplotlib绘制3D图形matplotlib可以绘制3D图形,有的版本中不具备该模块,可以进⼊python环境,输⼊from mpl_toolkits.mplot3d import Axes3D 进⾏测试,如果导⼊成功则可以,否则需要安装matplotlib其他版本,这⾥我⽤的是2.0.2版本。
Pythonmatplotlib绘图可视化知识点整理(小结)

Pythonmatplotlib绘图可视化知识点整理(⼩结)⽆论你⼯作在什么项⽬上,IPython都是值得推荐的。
利⽤ipython --pylab,可以进⼊PyLab模式,已经导⼊了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使⽤相关库的功能。
本⽂作为学习过程中对matplotlib⼀些常⽤知识点的整理,⽅便查找。
这样IPython配置为使⽤你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac OS X native/GTK)。
对于⼤部分⽤户⽽⾔,默认的后端就已经够⽤了。
Pylab模式还会向IPython引⼊⼀⼤堆模块和函数以提供⼀种更接近MATLAB的界⾯。
import matplotlib.pyplot as pltlabels='frogs','hogs','dogs','logs'sizes=15,20,45,10colors='yellowgreen','gold','lightskyblue','lightcoral'explode=0,0.1,0,0plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)plt.axis('equal')plt.show()matplotlib图标正常显⽰中⽂为了在图表中能够显⽰中⽂和负号等,需要下⾯⼀段设置:import matplotlib.pyplot as pltplt.rcParams['font.sas-serig']=['SimHei'] #⽤来正常显⽰中⽂标签plt.rcParams['axes.unicode_minus']=False #⽤来正常显⽰负号matplotlib inline和pylab inline可以使⽤ipython --pylab打开ipython命名窗⼝。
pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图。。。

pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图。
//2019.07.23,它主要包含五个基础数据:中位数,两个上下分位数以及上下边缘线数据其中的⼀些参数具体含义及其计算过程如下:2、双轴图的绘制代码:import numpy as npimport matplotlib.pyplot as pltimport pandas as pdplt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中⽂正常输出plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线⾥的负号import warningswarnings.filterwarnings("ignore") #忽略相应的警告信息df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导⼊w我们的表格数据⽂件print(df)print(df.index)print(df.columns)d=df[:5]fig=plt.figure(figsize=(10,8))ax1=fig.add_subplot(1,1,1)n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")ax1.set_ylabel("电影数量",fontsize=15)ax1.set_xlabel("评分",fontsize=15)ax1.set_title("频率分布直⽅图",fontsize=20)y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #⽣成正态分布函数ax2=ax1.twinx() #定义新的双轴图函数ax2.plot(bins,y,"b--")ax2.set_ylabel("概率分布",fontsize=15)y=df["评分"][::10] #隔10个点进⾏选取数据点plt.figure(2)plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出plt.xlabel("评分",fontsize=15)plt.ylabel("评分⼈数",fontsize=15)",fontsize=20)"]["评分"]print(d)plt.figure(4)plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})#箱线图的格式设置和调整",fontsize=17)"]["评分"]d2=df[df.类型=="地铁周边"]["评分"]d3=df[df.类型=="休闲度假"]["评分"]d4=df[df.类型=="海滨风光"]["评分"]d5=df[df.类型=="交通⽅便"]["评分"]d6=df[df.类型=="商务出⾏"]["评分"]plt.figure(5)plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通⽅便","商务出⾏"],whis=1.5,flierprops= {"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"},vert=True) #多组数据分布特征⽐较,vert决定了整体图像的横向与纵向#坐标轴的编辑与改变ax=plt.gca() #坐标轴的编辑与改变ax.patch.set_facecolor("white") #设置坐标轴的背景颜⾊ax.patch.set_alpha(0.3) #设置配⾊和透明度plt.title("不同类型酒店的评分箱线图",fontsize=20)plt.xlabel("酒店类型",fontsize=15)plt.ylabel("评分⼤⼩",fontsize=15)#相关系数矩阵图df1=df[["评分","评分⼈数"]]df1["排序"]=np.random.randint(1,100,396)print(df1)r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))#对于多个数据减的散点图绘制函数参数设置,diagonal表⽰对⾓线图像kde/hist(数据密度图或者直⽅图选择)corr=df1.corr()corr=abs(corr)ax=plt.figure(figsize=(10,8))ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)plt.xticks(fontsize=15)plt.yticks(fontsize=15)plt.xlabel("数据名称",fontsize=15)plt.ylabel("数据名称",fontsize=15)plt.title("不同数据间相关系数矩阵图",fontsize=20)plt.show()整体运⾏代码如下:import numpy as npimport matplotlib.pyplot as pltimport pandas as pdplt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中⽂正常输出plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线⾥的负号import warningswarnings.filterwarnings("ignore") #忽略相应的警告信息df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导⼊w我们的表格数据⽂件print(df)print(df.index)print(df.columns)d=df[:5]print(d)#双轴图的绘制.twinx()import matplotlib.mlab as mlabfig=plt.figure(figsize=(10,8))ax1=fig.add_subplot(1,1,1)n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")ax1.set_ylabel("电影数量",fontsize=15)ax1.set_xlabel("评分",fontsize=15)ax1.set_title("频率分布直⽅图",fontsize=20)y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #⽣成正态分布函数ax2=ax1.twinx() #定义新的双轴图函数ax2.plot(bins,y,"b--")ax2.set_ylabel("概率分布",fontsize=15)#散点图的绘制plt.scatter(x,y)绘制散点图x=df["评分⼈数"][::10]y=df["评分"][::10] #隔10个点进⾏选取数据点plt.figure(2)plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出plt.xlabel("评分",fontsize=15)plt.ylabel("评分⼈数",fontsize=15)plt.title("酒店评分与⼈数散点图",fontsize=20)#箱线图的绘制d=df[df.类型=="商务出⾏"]["评分"]print(d)plt.figure(4)plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})#箱线图的格式设置和调整plt.title("商务出⾏酒店的评分数据分布",fontsize=17)#多组数据的箱线图d1=df[df.类型=="浪漫情侣"]["评分"]d2=df[df.类型=="地铁周边"]["评分"]d3=df[df.类型=="休闲度假"]["评分"]d4=df[df.类型=="海滨风光"]["评分"]d5=df[df.类型=="交通⽅便"]["评分"]d6=df[df.类型=="商务出⾏"]["评分"]plt.figure(5)plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通⽅便","商务出⾏"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"} ,vert=True) #多组数据分布特征⽐较,vert决定了整体图像的横向与纵向#坐标轴的编辑与改变ax=plt.gca() #坐标轴的编辑与改变ax.patch.set_facecolor("white") #设置坐标轴的背景颜⾊ax.patch.set_alpha(0.3) #设置配⾊和透明度plt.title("不同类型酒店的评分箱线图",fontsize=20)plt.xlabel("酒店类型",fontsize=15)plt.ylabel("评分⼤⼩",fontsize=15)#相关系数矩阵图df1=df[["评分","评分⼈数"]]df1["排序"]=np.random.randint(1,100,396)print(df1)r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))#对于多个数据减的散点图绘制函数参数设置,diagonal表⽰对⾓线图像kde/hist#相关系数热⼒图import seaborn as snscorr=df1.corr()corr=abs(corr)ax=plt.figure(figsize=(10,8))ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)plt.xticks(fontsize=15)plt.yticks(fontsize=15)plt.xlabel("数据名称",fontsize=15)plt.ylabel("数据名称",fontsize=15)plt.title("不同数据间相关系数矩阵图",fontsize=20)plt.show()输出结果如下:。
Python3matplotlib的绘图函数subplot()简介

Python3matplotlib的绘图函数subplot()简介Python3 matplotlib的绘图函数subplot()简介⼀、简介matplotlib下, ⼀个Figure对象可以包含多个⼦图(Axes), 可以使⽤subplot()快速绘制, 其调⽤形式如下 :subplot(numRows, numCols, plotNum)图表的整个绘图区域被分成numRows⾏和numCols列然后按照从左到右,从上到下的顺序对每个⼦区域进⾏编号,左上的⼦区域的编号为1plotNum参数指定创建的Axes对象所在的区域如果numRows = 2, numCols = 3, 那整个绘制图表样式为2X3的图⽚区域, ⽤坐标表⽰为:(1, 1), (1, 2), (1, 3)(2, 1), (2, 2), (2, 3)这时, 当plotNum = 3时, 表⽰的坐标为(1, 3), 即第⼀⾏第三列的⼦图如果numRows, numCols和plotNum这三个数都⼩于10的话, 可以把它们缩写为⼀个整数, 例如subplot(323)和subplot(3,2,3)是相同的.subplot在plotNum指定的区域中创建⼀个轴对象. 如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除.⼆、参数说明1,subplots()参数matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)创建⼀个画像(figure)和⼀组⼦图(subplots)。
这个实⽤程序包装器可以⽅便地在单个调⽤中创建⼦图的公共布局,包括封闭的图形对象。
输⼊参数说明: nrows,ncols:整型,可选参数,默认为1。
表⽰⼦图⽹格(grid)的⾏数与列数。
Matplotlib画图标注annotate详解

Matplotlib画图标注annotate详解标注原⽂:译者:协议:基本标注使⽤text()会将⽂本放置在轴域的任意位置。
⽂本的⼀个常见⽤例是标注绘图的某些特征,⽽annotate()⽅法提供辅助函数,使标注变得容易。
在标注中,有两个要考虑的点:由参数xy表⽰的标注位置和xytext的⽂本位置。
这两个参数都是(x, y)元组。
import numpy as npimport matplotlib.pyplot as pltfig = plt.figure()ax = fig.add_subplot(111)t = np.arange(0.0, 5.0, 0.01)s = np.cos(2*np.pi*t)line, = ax.plot(t, s, lw=2)ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),arrowprops=dict(facecolor='black', shrink=0.05),)ax.set_ylim(-2,2)plt.show()在该⽰例中,xy(箭头尖端)和xytext位置(⽂本位置)都以数据坐标为单位。
有多种可以选择的其他坐标系 - 你可以使⽤xycoords和textcoords以及下列字符串之⼀(默认为data)指定xy和xytext的坐标系。
| 参数 | 坐标系 || 'figure points' | 距离图形左下⾓的点数量 || 'figure pixels' | 距离图形左下⾓的像素数量 || 'figure fraction' | 0,0 是图形左下⾓,1,1 是右上⾓ || 'axes points' | 距离轴域左下⾓的点数量 || 'axes pixels' | 距离轴域左下⾓的像素数量 || 'axes fraction' | 0,0 是轴域左下⾓,1,1 是右上⾓ || 'data' | 使⽤轴域数据坐标系 |例如将⽂本以轴域⼩数坐标系来放置,我们可以:ax.annotate('local max', xy=(3, 1), xycoords='data',xytext=(0.8, 0.95), textcoords='axes fraction',arrowprops=dict(facecolor='black', shrink=0.05),horizontalalignment='right', verticalalignment='top',)对于物理坐标系(点或像素),原点是图形或轴的左下⾓。
大数据-Matplotlib基础绘图

大数据挖掘专家
19
动态rc参数
3. 字体常用的rc参数
➢ 除字体与符号编码参数外,更多的字体常用rc参数名称、接收、取值如下表所示。
rc参数名称 font.family
font.style font.variant
解释
字体族,每一个族 对应多种字体 字体风格,正常或 罗马体及斜体
字体变化
font.weight 字体重量
plt.plot(x, np.sin(x))
plt.show()
大数据挖掘专家
17
动态rc参数
2. 坐标轴常用的rc参数
➢ 更多的坐标轴常用的rc参数名称、解释、取值如下表所示。
rc参数名称 axes.facecolor axes.edgecolor axes.linewidth axes.grid
‘None’
意义 圆圈 菱形 六边形1 六边形2 水平线 八边形 五边形 像素 加号 无
marker取值 ‘.’ ‘s’ ‘*’ ‘d’ ‘v’ ‘<’ ‘>’ ‘^’ ‘\’ ‘x’
意义 点 正方形 星号 小菱形 一角朝下的三角形 一角朝左的三角形 一角朝右的三角形 一角朝上的三角形 竖线
X
大数据挖掘专家
大数据挖掘专家
7
编号风格
1. 基础流程
➢ 通常情况下,在使用不同的数据重复的绘制同样 的图形时,选择自编函数来进行绘图。有时候也 会需要在图上添加文本标注。pyplot模块中,使 用matplotlib.pyplot.text()函数能够在任意位置添 加文本,其使用基本语法如下。
matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, **kwargs)
数据分析第二篇:matplotlib常用的几个绘图方法

数据分析第⼆篇:matplotlib常⽤的⼏个绘图⽅法Matplotlibmatplotlib是python的绘图库,使⽤它可以很⽅便的绘制出版质量级别的图形matplotlib的基本功能1.基本绘图1.1 绘制坐标系中连续的线,设置线型/线宽/颜⾊绘制⼀条线的相关APIimport numpy as npimport matplotlib.pyplot as plt# xarray:散点的x坐标数组# yarray:散点的y坐标数组plt.plot(xarray, yarray)plt.show()import numpy as npimport matplotlib.pyplot as pltx = np.arange(1,10)y = np.arange(1,10)plt.plot(x, y)plt.show()绘制⽔平线和垂直线相关API# 绘制⼀条垂直x轴的线,需要给定x坐标值的value,指定y坐标范围plt.vlines(value, ymin, ymax,..)# 绘制⼀条垂直y轴的线,需要给定y坐标值的value,指定x坐标范围plt.hlines(value, xmin, xmax,..)import numpy as npimport matplotlib.pyplot as pltx = np.arange(1,10)y = np.arange(1,10)plt.plot(x, y)plt.vlines(5, 3, 8)plt.hlines(5, 3, 8)plt.show()线型/线宽/颜⾊plt.plot(x,y,linestyle='', # 线型linewidth=1, # 线宽color='', # 颜⾊alpha=0.5 # 透明度)r 红⾊g 绿⾊b 蓝⾊c cyanm 紫⾊y ⼟黄⾊k ⿊⾊w ⽩⾊1.2 设置坐标轴的范围plt.xlim(x_lim_min, x_lim_max)plt.ylim(y_lim_min, y_lim_max)1.3 设置坐标刻度# 设置x轴的坐标刻度# x_val_list:坐标值列表# x_text_list:坐标刻度列表plt.xticks(x_val_list, x_text_list)plt.yticks(y_val_list, y_text_list)# 设置坐标刻度[-π,-π/2, 0, π/2, π]---------------⽅法⼀------------x_val_list= [-np.pi, -np.pi/2, 0, np.pi/2, np.pi]x_text_list = ['-π','-π/2','0','π/2','π']plt.xticks(x_val_list, x_text_list)--------------⽅法⼆-------------x_text_list = [r'$-\pi$',r'$-\frac{\pi}{2}$',r'0',r'$\frac{\pi}{2}$',r'${\pi}$']刻度⽂本的特殊语法 - LaTeX排版语法规范设置坐标轴坐标轴包含四个:left/right/bottom/top# getCurrentAxis() 获取当前坐标轴对象ax = plt.gca()ax1 = ax.spines['left']axr = ax.spines['right']# 设置坐标轴的颜⾊axl.set_color('none') # 设置坐标轴颜⾊为透明# 设置坐标轴的位置axl.set_position((type,val))# 设置坐标轴颜⾊与位置ax = plt.gca()ax.spines['top'].set_color('none')ax.spines['right'].set_color('none')ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data',0))1.4 显⽰图例# ⾃动在窗⼝中某个位置添加图例# 添加图例需要在调⽤plt.plot()绘制曲线时设置label参数通过loc参数设置图例的位置plt.legend(loc='')# 实例plt.plot(x, cos_x, linestyle='--', linewidth=3, color='y', label=r'$y =\frac{1}{2}cos(x)$') plt.plot(x, sin_x, linestyle='-.', linewidth=1, color='m', label=r'$y=sin(x)$')plt.legend()1.5 绘制特殊点plt.scatter(x,y,marker='', # 点型s=3, # 点的⼤⼩edgecolor='', # 边缘⾊facecolor='', # 填充⾊zorder=3) # 绘制顺序1.6 为图像添加备注plt.annotate('', # 备注内容xycoords='', # 备注⽬标点使⽤的坐标系xy=(x,y), # 备注⽬标点的坐标textcoords= '', # 备注⽂本使⽤的坐标系xytext = (x,y), # 备注⽂本的坐标fontsize = 14, # 备注⽂本字体⼤⼩arrowprops = dict() # 提⽰箭头属性)arrowprops参数使⽤字典定义只想⽬标点的箭头样式arrowprops = dict(arrowstyle = '', # 定义箭头样式connectionstyle = '' # 定义连接线样式)# 可设置箭头的弧度connectionstyle='arc3, rad=0.1',2.⾼级绘图2.1 绘制⼦图⼀次绘制两个窗⼝plt.figure('', # 窗⼝标题figsize=(4,3), # 窗⼝⼤⼩facecolor = '' # 窗⼝颜⾊)plt.show() # 展⽰窗⼝# 可以创建多个窗⼝,每个窗⼝的标题不同,后续调⽤plt的⽅法进⾏绘制时将作⽤于当前窗⼝上#,如果希望修改已经创建过的窗⼝,可以通过plt.figure('figure1')⽅法把该窗⼝设置为当前窗⼝。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一基础例1 知识点在一个画布上绘制多幅图片,了解需要导入的模块了解plot的用法了解title xlable ylable用法了解rcparams如何使用import numpy as npfrom matplotlib import pyplot as pltx = np.arange(1,11)y = 2 * x + 5data=np.arange(0,5,0.1)plt.rcParams['lines.linewidth']=5plt.title("Matplotlib demo")plt.xlabel("x axis caption")plt.ylabel("y axis caption")plt.plot(x,y)plt.plot(data,data**2)plt.plot(data,data)plt.show()例2 知识点了解常见的数学函数的使用如何创建m*n网络-plt.subplot(3, 3, 1)了解网格的定位 -根据subplot的第三个参数,下标从1开始import numpy as npimport matplotlib.pyplot as plt# 计算正弦和余弦曲线上的点的 x 和 y 坐标x = np.arange(0, 3 * np.pi, 0.1)y_sin = np.sin(x)y_cos = np.cos(x)y_arctan=np.arctan(x)# 建立 subplot 网格,高为 3,宽为3# 激活第一个 subplotplt.subplot(3, 3, 1)# 绘制第一个图像plt.plot(x, y_sin)plt.title('Sinx')# 将第二个 subplot 激活,并绘制第二个图像plt.subplot(3, 3, 5)plt.plot(x, y_cos)plt.title('Cosx')plt.subplot(3, 3, 9)plt.plot(x, y_arctan)plt.title('ARCTan')plt.rcParams['lines.linewidth']=1plt.rcParams['lines.linestyle']='-.'# 展示图像plt.show()例3知识点:import matplotlib.pyplot as pltimport numpy as npx1 = [1, 2, 3, 4]y1 = [1, 2, 3, 4] #第一组数据x2 = [1, 2, 3, 4]y2 = [2, 3, 4, 5] #第二组数据n = 10x3 = np.random.randint(0, 5, n)y3 = np.random.randint(0, 5, n) #使用随机数产生plt.scatter(x1, y1, marker = 'x',color = 'red', s = 40 ,label = 'First')# 记号形状颜色点的大小设置标签plt.scatter(x2, y2, marker = '+', color = 'blue', s = 40, label = 'Second') plt.scatter(x3, y3, marker = 'o', color = 'green', s = 40, label = 'Third') plt.legend(loc = 'best') # 设置图例所在的位置使用推荐位置plt.show()二实验准备工作:把数据文件导进来1 绘制第一季度散点图import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei'#设置中文显示,否则可能无法显示中文或者是各种字符错乱plt.rcParams['axes.unicode_minus']=Falsedata=np.load("D:/tmp/国民经济核算季度数据.npz")#加载数据print(data)#这时的data是数据对象print(data.keys())#该数据对象是个字典,所以先获取他的key值print(data['columns'])#看一下key值里面有什么,print(data['values'])#看一下value值里面有什么,name=data['columns']values=data['values']plt.figure(figsize=(8,7))plt.scatter(values[:,0],values[:,2],marker='o')#以数据的第零列做x轴,第三列做y 轴,来描绘散点图plt.xlabel('年份');plt.ylabel('生产总值(亿元)');plt.ylim((0,225000))plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)#此时取得值都是第一季度的plt.title('2000-2018年季度生产总值散点图')plt.savefig('D:/tmp/2000-2018年季度生产总值散点图.png')#注意要先保存再show plt.show()#下面是得到的结果2 分析的第1,2,3产业的的国民生产总值import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei'#设置中文显示,否则可能无法显示中文或者是各种字符错乱plt.rcParams['axes.unicode_minus']=Falsedata=np.load("D:/tmp/国民经济核算季度数据.npz")#加载数据plt.figure(figsize=(8,7))plt.scatter(values[:,0],values[:,3],marker='o',c='red')#下面三类是绘制的第一二三产业的增加值plt.scatter(values[:,0],values[:,4],marker='D',c='blue')plt.scatter(values[:,0],values[:,5],marker='v',c='yellow')plt.xlabel('年份');plt.ylabel('生产总值(亿元)');plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)#此时取得值都是第一季度的plt.title('2000-2018年季度生产总值散点图')plt.legend(['第一产业','第二产业','第三产业'])plt.savefig('D:/tmp/2000-2018年季度生产总值散点图.png')#注意要先保存再show plt.show()分析图,可以得到:第一季度增长平缓,第三季度呈现指数增长,第二季度每年会根据季度呈现指数增长。
总体来看,我国近18年的各个产业都在持续增长中,并且第二和第三产业的增长幅度比较大,18年增长了400%以上。
3 折线图分析第一季度import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei'#设置中文显示,否则可能无法显示中文或者是各种字符错乱plt.rcParams['axes.unicode_minus']=Falsedata=np.load("D:/tmp/国民经济核算季度数据.npz")#加载数据plt.figure(figsize=(8,7))plt.plot(values[:,0],values[:,2],color='r',linestyle='--')plt.xlabel('年份');plt.ylabel('生产总值(亿元)');plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)#此时取得值都是第一季度的plt.title('2000-2018年季度生产总值折现图')plt.savefig('D:/tmp/2000-2018年季度生产总值散点图.png')#注意要先保存再show plt.show()散点图可以反映x和y轴(特性)的相关关系,而绘制折线图可以了解特性之间的趋势关系4 点线图(其实就是改变marker)import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=Falsedata=np.load("D:/tmp/国民经济核算季度数据.npz")#加载数据plt.figure(figsize=(8,7))plt.plot(values[:,0],values[:,2],color='r',linestyle='--',marker='s')#plot绘制点线图plt.xlabel('年份',fontsize=10);plt.ylabel('生产总值(亿元)',fontsize=20);plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.title('2000-2007年各季度国民生产总值点线图')plt.savefig('D:/tmp/a4.png')plt.show()有时可能默认的图片字体大小可能不符合要求,只需要用fontsize去改变大小即可5 各产业季度生产总值折线图plt.plot(values[:,0],values[:,3],'bs-')#第三个参数的含义是颜色blue点的形状正方形线的类型是实线-plt.plot(values[:,0],values[:,4],'ro-.')plt.plot(values[:,0],values[:,5],'gh--')plt.xlabel('年份',fontsize=15);plt.ylabel('生产总值(亿元)',fontsize=20);plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.title('2000-2007年各季度国民生产总值折线图')plt.legend(['第一季度','第二季度','第三季度'])plt.savefig('D:/tmp/a4.png')plt.show()同时把三条线加到同一张图片上,同时每个图片设置各自的属性(颜色,点的形状,线性)注意要先绘制图形,再添加图例(先plot再legend)否则图列显示不出来。