学习视频链接:Python数据分析与展示_北京理工大学_哔哩哔哩_bilibili P21-P35
Matplotlib库入门
一、Matplotlib库的导入
Matplotlib库是python优秀的可视化第三方库
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库,相当与快捷方式。
#plt是引入模块的别名,这是一种约定俗成的引入名称
import matplotlib.pyplot as plt
二、Matplotlib库小测
1.绘制简单的折线图
import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel('Grade')
plt.show()
#注:plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成。
2.将绘制的图保存成文件
import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel('Grade')
plt.savefig('D://test',dpi=600)
#注:plt.savefig()将图形存储为文件,默认为PNG格式,可以通过dpi修改输出质量
3.同时添加X轴和Y轴的数组绘图
import matplotlib.pyplot as plt
plt.plot([0,2,4,6,8],[3,1,4,5,2])
plt.ylabel('Grade')
plt.axis([-1,10,0,6])
plt.show()
例如:
plt.sublot(3,2,4)
当前的绘图区域:
简单实例:
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t)*np.cos(2*np.pi*t)
a=np.arange(0.0,5.0,0.02)
plt.subplot(211) #第一块区域
plt.plot(a,f(a))
plt.subplot(212) #第二块区域
plt.plot(a,np.cos(2*np.pi*a))
plt.show()
效果:
四、pyplot的plot()函数
plt.plot(x,y,format_string,**kwargs)
# x:X轴数据,列表或数组,可选
# y:Y轴数据,列表数组
# format_string:控制曲线的格式字符串,可选
# **kwargs:第二组或更多(x,y,format_string)
#注:当绘制多条曲线时,各条曲线的x不能省略
#当不设置format_string时,matplotib会自动对一个绘图区域的多条曲线设置不同的颜色。
例:
import numpy as np
import matplotlib.pyplot as plt
a=np.arange(10)
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
plt.show()
例子:
format_string:控制曲线的格式字符串,可选。由颜色字符、风格字符和标记字符组成。
颜色字符:
风格字符:
标记字符:
实例:
import numpy as np
import matplotlib.pyplot as plt
a=np.arange(10)
plt.plot(a,a*1.5,'bo-',a,a*2.5,'gx--',a,a*3.5,'r-.',a,a*4.5,'y*:')
plt.show()
效果:
五、pyplot的中文显示(pyplot并不默认支持中文显示)
1.使用rcParams修改字体
raParams的属性:
中文字体的种类:
实例:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='Kaiti'
matplotlib.rcParams['font.size']=12
matplotlib.rcParams['font.style']='normal'
a=np.arange(0.0,5.0,0.02)
plt.ylabel('纵轴:振幅')
plt.xlabel('横轴:时间')
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.show()
效果:
2.在有中文输出的地方增加一个属性:fontproperties
实例:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=12)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=12)
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.show()
效果:
六、pyplot的文本显示函数
实例:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=12,color='green')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=12)
plt.title('正弦波实例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=20,color='red')
plt.text(2,1,r'$\mu=100$',fontsize=15)
plt.axis([-1,6,-2,2])
plt.show()
效果:
#注释的使用:
plt.annotate(s, xy=arrow_crd, xytext=text_crd, arrowprops=dict)
实例:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=12,color='green')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=12)
plt.title('正弦波实例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=20,color='red')
plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),arrowprops={'facecolor':'black','shrink':0.1,'width':2})
plt.axis([-1,6,-2,2])
plt.show()
效果:
七、pyplot的子绘图区域
1.subplot2grid()
虽然使用plt.subplot()方法也可以设置绘图区域,但是这种方法过于繁琐。当绘图子区域过多时,实际中更多使用plt.subplot2grid()方法。
plt.subplot2grid(GridSepc,CurSpec,colspan=1,rowspan=1)
#理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
划分区域效果:
2.GridSpec类
使用GridSpec类可以达到和subplot2grid()方法相同的效果。
文章浏览阅读4.5w次,点赞48次,收藏44次。【程序员洲洲送书福利-第十九期】《C++ Core Guidelines解析》
文章浏览阅读9.1w次,点赞19次,收藏113次。下面带来win10 64位操作系统下ArcGIS10.2的安装过程,亲测,可用。win8 win7操作系统下按此教程也可行。_arcgis安装
文章浏览阅读5.7k次,点赞6次,收藏112次。路由与交换技术课程设计_路由与交换课设
文章浏览阅读914次,点赞30次,收藏11次。接口优化
文章浏览阅读460次。RFID智能停车场管理方案主要应用于停车场收费管理、4S店停车场管理等各类车辆管理场合,在车辆上安装车辆IC卡,在进出口位置安装UR5206远距离读卡器,当车辆I过来的时候,RFID远距离读卡器读到车辆IC卡,送到控制板或后台数据库,控制板或后台数据库根据预设的条件做下一步的动作:抬升道闸放行或记录车辆信息。既能应用于收费停车场、车辆称重等车辆管理,也能应用于公交、车队等运输车辆调度管理以及高速收费等,有效的解决了各单位所面临的车辆识别管理问题。_rfid停车场收费系统设计方案
文章浏览阅读1k次,点赞13次,收藏10次。我们生活中登录的时候都要输入验证码,这些验证码是为了增加注册或者登录难度,减少被人用脚本疯狂登录注册导致的一系列危害,减少数据库的一些压力。毕竟那些用脚本生成的账号都是垃圾账号本次实践:生成这样的验证码并且附带一些干扰线。_随机生成验证码
文章浏览阅读5.3k次。前段时间有一个项目涉及到了很多的查询与报表生成。因为单表数据量已经达到了千万级,再多表关联已经达到亿级数据了。之前没有接触过这么大数据量的处理,所以刚接到这个项目时有点脑瓜子疼。最开始我还是想通过优化sql与索引方式来提高查询的性能,但是效果并不明显。(由于业务的需求,sql关联了很多表,其真实的执行时间已经超过一分钟了【不能忍了】)然后找了公司的dba讨论如何解决,我提出的第一个方案是采..._oracle五千万数据查询
文章浏览阅读1k次,点赞24次,收藏14次。基于CNN卷积神经网络的minst数据库手写字识别
文章浏览阅读48次。有道云笔记中很多不知道什么时候时候的链接,清空一下,都放到这里方便点击学生问为什么要读书?【万字长文】如何成为一个值钱的职场人?码农翻身:2020年,给大家提7点建议_闲着没事看的有用文章
文章浏览阅读42次。ps替换修改图片上文字
文章浏览阅读5.7k次,点赞29次,收藏128次。本文主要讲述了:AFIO与GPIO的关系,AFIO的配置,AFIO的开启条件。_afio
文章浏览阅读1w次。作者后来还透露,其实他根本不是研究这个领域的数据科学家,他是先问了ChatGPT“哪些数据有了可视化会很火”,然后再让ChatGPT把从哪找这些数据找出来……如果实在申请不到那也没关系,有人提出,只要先让ChatGPT写出代码,再到别的地方运行,虽然麻烦点但是效果基本没差。对此观点最好的例子,是一位网友把自己苹果健康的数据导出,并用此方法让ChatGPT生成了一张每天行走步数的热度图。需要注意的是,虽然OpenAI给出的是单选,但是有网友发现其实是可以重复填写的。到这还算平常,但下一步直接让人惊掉下巴——_ai上传文档