Numpy、Matplotlib、Pandas学习笔记(2)Matplotlib篇

编程入门 行业动态 更新时间:2024-10-04 05:29:41

Numpy、Matplotlib、Pandas<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记(2)Matplotlib篇"/>

Numpy、Matplotlib、Pandas学习笔记(2)Matplotlib篇

Matplotlib基础操作

导入Matplotlib

import Matplotlib as plt

处理Matplotlib不支持中文的情况

import matplotlibfont = {'family' : 'MicroSoft YaHei',  #此处选择电脑有的字体名称'weight' : 'bold','size'   : '9'}          #字体大小
matplotlib.rc("font",**font)  

1.1总览

Matplotlib最强大的功能就是绘制各种图表,包括但不限于折线图,散点图,条形图,直方图,饼状图

1.2一些小操作

查询源码:help()或者按住ctrl点击代码

对于颜色的使用:1.颜色的英文(首字母也可)  2.十六进制

1.3各类图表

1.1折线图

core:plt.plot()

此处以一个案例说明,给出两组数据x , y_1和x , y_2

x=range(11,31)
y_1=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_2=[2,5,4,3,2,4,3,2,1,4,4,1,1,3,1,3,0,0,0,1]
fig=plt.figure(figsize=(12,11),dpi=50)#figsize控制绘制出来图表的尺寸,dpi是像素点plt.xticks(range(30),(此处选择可以填写字符串的列表,也可以选择不填))
#x.ticks调控x轴上的刻画的数字也可以是字符串#绘制图形
plt.plot(x,y_1,label="自己",color="r",linestyle="-.",linewidth=2,alpha=0.5)
plt.plot(x,y_2,label="同桌",color="y",linewidth=3,alpha=0.1)
#label是表示图像的标志,linestyle表示线段的形状,
linewidth表示线段的粗细,alpha表示透明度(0-1)plt.xlabel("年龄")#x轴上的标签
plt.ylabel("交过女朋友数量")plt.grid(alpha=0.5)#绘制网格
plt.legend(loc=8)#决定图像标志的位置plt.show()#展示绘制出来的图形
plt.savefig()#保存文件,括号里填写路径

效果图

1.2柱状图

简单柱状图

core:plt.bar()

x=["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士",
"摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工;终极回归",
"生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺",
"金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]y=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,
8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
fig=plt.figure(figsize=(15,8))#控制图表尺寸plt.xticks(range(len(x)),x,rotation=90)#控制x轴刻度,rotation控制字符串偏转角度
plt.yticks(range(int(min(y)),int(max(y)))[::4])#控制y轴刻度plt.xlabel("电影名称")#x轴的标签
plt.ylabel("票房")#y轴的标签plt.bar(range(len(x)),y,width=0.5)#绘制图形plt.grid()#绘制网格plt.show()

效果图

简单柱状图的x,y轴交换

core:plt.barh()

依旧是上面的案例

fig=plt.figure(figsize=(15,8))plt.yticks(range(len(x)),x,rotation=0)
plt.xticks(range(int(min(y)),int(max(y)+3))[::3])plt.ylabel("电影名称")
plt.xlabel("票房")plt.barh(range(len(x)),y,height=0.6,color="orange")
#该操作没有width只有heightplt.grid()
plt.show()

效果图

堆叠柱状图
x=["猿猩崛起3:\n终极一战","敦刻尔克","蜘蛛线3:\n英雄归来","战狼2"]
#/n是换行的操作
y_1=np.array([1543,235,4497,319])
y_2=np.array([1234,3218,2778,156])
y_3=np.array([2358,238,2595,257])
fig=plt.figure(figsize=(10,9))
plt.xticks(range(len(x)),x,rotation=45)#指定x轴的刻度,rotation是控制字符串的旋转角度plt.bar(range(len(x)),y_1,label="第一天",color="red",edgecolor="blue",linewidth=1,linestyle="--")
#edgecolor是边缘线段的颜色plt.bar(range(len(x)),y_2,label="第二天",color="blue",bottom=y_1)
#关键控制绘制第二组数据的起始高度plt.bar(range(len(x)),y_3,label="第三天",color="pink",bottom=y_2+y_1)
#关键控制绘制第三组数据的起始高度plt.legend()
plt.show()

效果图

多组数据柱状图
x=["猿猩崛起3:\n终极一战","敦刻尔克","蜘蛛线3:\n英雄归来","战狼2"]
#/n是换行的操作
y_1=np.array([1543,235,4497,319])
y_2=np.array([1234,3218,2778,156])
y_3=np.array([2358,238,2595,257])
x_1=list(range(len(x)))
x_2=[i+0.2 for i in x_1]
x_3=[i+0.2*2 for i in x_1]
#调组距,确保每组数据无重叠部分plt.bar(x_1,y_1,width=0.2,label="九月十四号")#width表示宽度
plt.bar(x_2,y_2,width=0.2,label="九月十五号")
plt.bar(x_3,y_3,width=0.2,label="九月十六号")plt.xticks(x_2,x)#标注该组数据的大小(va是垂直,ha是对齐)
for i in range(len(x_1)):plt.text(x_1[i],y_1[i],y_1[i],va="bottom",ha="center")plt.text(x_2[i],y_2[i],y_2[i],va="bottom",ha="center")plt.text(x_3[i],y_3[i],y_3[i],va="bottom",ha="center")plt.legend(loc=1)
plt.grid()plt.show()

效果图

1.3散点图

core:plt.scatter()

y_3=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,
21,16,17,20,14,15,15,15,19,21,22,22,23,21]
y_10=[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,
20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]x_3=range(1,32)
x_10=range(51,82)fig=plt.figure(figsize=(19,12),dpi=80)_x=list(x_3)+list(x_10)
_xc=[f"三月{i}日" for i in x_3]
_xc+=[f"十月{i}日" for i in x_3]plt.xticks(_x[::2],_xc[::2],rotation=45)
plt.yticks(range(35)[::3])plt.xlabel("日期")
plt.ylabel("温度")
plt.title("三月份与十月份的温度比较")#整个图表的名称plt.scatter(x_3,y_3,label="三月份",s=5,c="red",linewidth=0.5)
plt.scatter(x_10,y_10,label="十月份",s=5)
#s表示点的大小

                                                                      效果图

1.4饼状图

core:plt.pie()

labels=["饮食","衣服","交通","日用","补剂","书本","随心买"]x=[1000,400,500,200,100,300,200]explode=[0.1,0.08,0.13,0.2,0.1,0.2,0.15]#板块离圆心的距离plt.pie(x,labels=labels,autopct="%.4f%%",explode=explode,shadow=True,
pctdistance=0.8,labeldistance=1.2)
#autopct表示保留多少位小数,pctdistance表示数字离圆形距离,
labeldistance表示标签离圆心距离plt.show()

效果图

 1.5直方图

core:plt.hist()

x=[117,111,78,132,124,113,150,110,117,86,95,144,105,126.130,126,130, 126,116,123.106,112,38,123,86,101,99,136.123,117,119,105,137,123,128,125,104, 109,134,125,127.105,120,107,129,116,108,132,103,136,118,102,120,114.105,115, 132, 145,119,121,112,139,125,138,109,132,134,156,106,117,127,144,139,139,119,140,83, 110,102.123,107,143,115,136 118,139,123,112,118,125,109,119.133,112,114,122,109,106, 123,116,131,127,115,118,112,135,115,146,137,116,103,144,83,123,111,110,111,100, 154,136,100,118,119,133,134,106,129,126,110,111,109,141,120,117,106,149,122,122,110,118,127,121,114,125,126,114,140,103,130,141,117,106,114,121,114,133,137,92,121,112,146,97, 137,105,98,117,112,81,97,139,113,134,106,144,110,137,137,111,104,117,100,111,101,110,105, 129,137,112,120,113,133,112,83,94,146,133,101,131,116,111,84,137,115,122,106,144,109,123,116,111,111,133,150]d=12#组数
oi=(max(x)-min(x))//dplt.hist(x,d,density=True,color="blue",facecolor="orange")
#density=True表示频率,density=False表示频数plt.xticks(range(min(x),max(x)+oi,oi))#oi是组距plt.show()

效果图

更多推荐

Numpy、Matplotlib、Pandas学习笔记(2)Matplotlib篇

本文发布于:2024-02-28 09:52:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769516.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   Numpy   Matplotlib   Pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!