matplotlib入门笔记

matplotlib简介

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

绘制函数的输入类型
所有绘图函数都需要np.array或np.ma.masked_array对象作为输入类型。如果是 “类数组(array-like)” 对象(如pandas数据对象和np.matrix)可能会或可能不会按预期工作。最好在绘图之前将它们转换为np.array对象。

例:

import numpy as np
import matplotlib.pyplot as plt    # matplotlib中的快速绘图的函数库的载入语句
x = np.linspace(0, 10, 1000) 	   #在X轴上从0-10取1000个点
y = np.sin(x)
z = np.cos(x**2)
plt.figure(figsize=(8,4))            #通过figsize参数可以指定绘图对象的宽度和高度,单位为英寸
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)    #标记该线条的名称sin(x) 线条颜色为红色,线宽为2
plt.plot(x,z,"b--",label="$cos(x^2)$")     #标记该线条的名称cos(x^2)  线条为蓝色“----”构成的虚线
plt.xlabel("Time(s)")   #x坐标轴标识的是Time
plt.ylabel("Volt")     #y坐标轴表示的是Vlot
plt.title("PyPlot-Example")		#该图像名称为PyPlot-Example
plt.ylim(-1.2,1.2)   #图像中y轴的范围是-1.2至1.2
plt.legend()		#显示线条标记
plt.show()

输出结果如下图:
在这里插入图片描述
还可以调用plt.savefig()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定。
下面的程序将当前的图表保存为“plottest.png”,并且通过dpi参数指定图像的分辨率为 120。

run matplotlib_simple_plot.py
plt.savefig("plottest.png",dpi=120)

绘制多轴图

一个绘图对象(figure)可以包含多个轴(axis),在Matplotlib中用轴表示一个绘图区域,可以将其理解为子图。上面的第一个例子中,绘图对象只包括一个轴,因此只显示了一个轴(子图(Axes) )。可以使用subplot函数快速绘制有多个轴的图表。subplot函数的调用形式如下:

subplot(numRows, numCols, plotNum)

subplot将整个绘图区域等分为numRows行和 numCols列个子区域,然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1。如果numRows,numCols和plotNum这三个数都小于10的话,可以把它们缩写为一个整数,例如subplot(323)和subplot(3,2,3)是相同的。subplot在plotNum指定的区域中创建一个轴对象。如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除。

scatter函数绘制散点图

matplotlib.pyplot.scatter(s,y,s,c ,marker,cmap ,alpha,linewidth)
基本参数类型描述
x,yarray_like,shape(n,)数据位置。
s标量或array_like,shape(n,),可选标记大小以磅为单位** 2。默认是。rcParams[‘lines.markersize’] ** 2
c颜色,序列或颜色序列,可选标记颜色。
markerMarkerStyle,可选标记样式。marker可以是类的实例,也可以是特定标记的文本缩写。默认为None,在这种情况下,它取值 rcParams[“scatter.marker”]=‘o’。
cmapColormap,可选,默认值:无一个Colormap实例或注册的颜色表名。仅当c是浮点数组时才使用cmap。如果,默认为rc 。Noneimage.cmap
alpha标量,可选,默认值:无alpha混合值,介于0(透明)和1(不透明)之间。
linewidths标量或array_like,可选,默认值:无标记边缘的线宽。注意:默认边缘颜色 为“face”。您可能也想要更改它。如果为None,则默认为rcParams lines.linewidth。

bar(barsh)函数绘制垂直(水平)直方图

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None,  align='center')

bar方法

基本参数类型描述
x标量序列条形的x坐标。另请参见对齐条形对齐坐标。
height标量或标量序列条形的高度。
width标量或类似数组,可选条形的宽度(默认值:0.8)。
bottom标量或类似数组,可选条形基座的y坐标(默认值:0)。
align{‘center’,‘edge’},可选,默认:‘center’条形对齐x坐标:

pie函数绘制饼图

绘制饼图。

制作数组x的饼图。每个楔形的分数面积由下式给出x/sum(x)。如果,那么x的值直接给出小数区域,并且数组将不被标准化。生成的馅饼将有一个空的大小楔形。sum(x) < 11 - sum(x)

matplotlib.pyplot.pie(x,explode = None,labels = None,colors = None,autopct = None,pctdistance = 0.6,shadow = False,labeldistance = 1.1,startangle = None,radius = None)
基本参数类型描述
x类似于数组楔形尺寸。
explodearray-like,optional,默认值:None如果不是None,则是一个len(x)数组,它指定用于偏移每个楔形的半径部分。
labelslist,optional,default:None一系列字符串,为每个楔形提供标签
colorsarray-like,optional,默认值:None一系列matplotlib颜色args,饼图将通过它循环。如果为None,将使用当前活动周期中的颜色。
autopct无(默认),字符串或函数,可选如果不是None,则是用于用其数值标记楔形的字符串或函数。标签将放在楔子内。如果是格式字符串,标签将是fmt%pct。如果它是一个函数,它将被调用。
pctdistancefloat,optional,默认值:0.6每个饼图切片的中心与autopct生成的文本的开头之间的比率。如果autopct为None,则忽略。
shadowbool,可选,默认值:False在馅饼下画一个阴影。
labeldistancefloat或None,可选,默认值:1.1绘制饼图标签的径向距离。如果设置为None,则不绘制标签,但存储以供使用 legend()
startanglefloat,optional,默认值:None如果不是None,则将饼图的起点 从x轴逆时针旋转角度。
radiusfloat,optional,默认值:None饼图的半径,如果半径为None,则将其设置为1。

boxplot函数绘制箱线图

制作一个盒子和胡须图。

x按顺序为每列或每个载体制作一个盒子和须状图x。该框从数据的下四分位数值向上四分位数值延伸,中间有一条线。晶须从盒子中伸出以显示数据范围。飞行员点数是那些胡须结束时的点数。

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None)
基本参数类型描述
x数组或向量序列。输入数据。
notchbool,可选(假)如果True,将产生一个缺口的盒子图。否则,生成矩形箱图。凹口表示中值周围的置信区间
symstr,可选飞行员点的默认符号。如果您不想显示传单,请输入空字符串(’’)。如果None,那么传单默认为’b +'如果你想要更多控制使用flierprops kwarg。
vertbool,可选(True)如果True(默认),则使框垂直。如果False,一切都是水平绘制的。
whisfloat,sequence或string(默认值= 1.5)作为浮子,确定胡须的距离超出第一和第三四分位数。换句话说,在IQR是四分位数范围(Q3-Q1)的情况下,上部晶须将延伸到小于的最后一个数据。
bootstrapint,可选指定是否为缺口boxplot s 的中位数周围引导置信区间。如果bootstrap是None,则不执行自举,否则,bootstrap指定引导中位数以确定其95%置信区间的次数。建议值介于1000和10000之间。

实例

import numpy as np
import matplotlib.pyplot as plt
import matplotlib



matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False     # 正常显示负号

plt.figure(1)
plt.subplot(231)
data = np.random.randn(2, 100)
plt.title('散点图')
plt.scatter(data[0], data[1])




plt.subplot(232)
spread = np.random.rand(50) * 100
center = np.ones(25) * 50
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
data = np.concatenate((spread, center, flier_high, flier_low))#数据拼接
plt.title('箱线图')
plt.boxplot(data)


plt.subplot(233)
plt.title('饼图')
labels='不及格','及格','良好','优秀'#定义标签
sizes=[15,30,45,10]#定义每一块的比例
colors=['yellowgreen','gold','lightskyblue','lightcoral']#定义每一块的颜色
explode=(0.2,0.1,0.1,0.1)#定义每一块偏离中心的距离
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',
        shadow=True,startangle=90)



plt.subplot(234)
plt.title('水平直方图')
y=[1,2,3,4,5]#给出在y轴上的位置
width=[5,4,7,2,9]#给出具体每个直方图的数值
plt.barh(y,width)#绘制水平直方图

plt.subplot(235)
y = range(1, 17)
plt.bar(np.arange(16), y, alpha=0.5, width=0.3, color='yellow', edgecolor='red', label='The First Bar', lw=3)
plt.bar(np.arange(16) + 0.4, y, alpha=0.2, width=0.3, color='green', edgecolor='blue', label='The Second Bar', lw=3)

plt.subplot(236)
plt.title('直方图')
x=np.arange(5)#给出在y轴上的位置
y=np.array([5,4,7,2,9])#给出具体每个直方图的数值
y1=np.array([3,5,2,4,10])#给出第二组直方图信息
y2=np.array([3,4,6,2,5])#给出第三组数据

plt.bar(x,y,label='workday')
plt.bar(x,y1,bottom=y,label='weekend')
plt.bar(x,y2,bottom=y+y1,label='Christmas')
plt.legend()#列出图例


plt.show()

运行结果:
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值