版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ch13图形绘制和数据可视化本章要点:13.1Python绘图模块概述13.2Matplotlib模块13.3Matplotlib基本绘图13.4常用图表类型的绘制13.5面向对象的Matplotlib绘图资源下载提示2课件等资源:扫描封底的“课件下载”二维码,在公众号“书圈”中下载。素材(源码):扫描本书目录上方的二维码下载。讲解视频:扫描封底刮刮卡中的二维码,再扫描书中相应章节中(位于每章最前)的二维码,作为开源的补充阅读和学习资源。
案例研究:扫描封底刮刮卡中的二维码,再扫描书中相应章节中(位于每章最后)的二维码,可以在线学习。每章练习题:扫描封底刮刮卡中的二维码,再扫描每章习题部分的二维码,下载本章练习题电子版。
题库平台:教师登录网站(),联系客服开通教师权限Python绘图模块概述Python标准库中包括tkinter(画布绘图)turtle(海龟绘图)Python提供大量高质量的第三方绘图库,常用的开源绘图模块库如下(1)Matplotlib。Matplotlib可以绘制多种形式的图形,包括普通的线图、直方图、饼图、散点图以及误差线图等;还可以比较方便地定制图形的各种属性,例如图形的类型、颜色、粗细、字体的大小等。(2)Seaborn。Seaborn是基于Matplotlib进行再封装开发的第三方库,并且支持NumPy和Pandas。Seaborn能够对统计类数据进行有效的可视化展示,它提供了一批高层次的统计类数据的可视化展示效果。Seaborn的官网地址为“/”(3)PythonGoogleChart。PythonGoogleChart是GoogleChartAPI的一个完整封装,其官网地址“/”。(4)Pychart。Pychart用于创建高品质封装的PostScript、PDF、PNG或SVG图表Python库,其官网地址为“/pychart/”。(5)PLPlot。PLPlot是用于创建科学图表的跨平台软件包,以C类库为核心,支持各种语言(C、C++、Fortran、Java、Python等),其官网地址为“/”基于Matplotlib模块的绘图Matplotlib是Python最著名的绘图库之一,提供了一整套和MATLAB相似的命令API,既适合交互式地进行制图,也可以作为绘图控件方便地嵌入GUI应用程序中Matplotlib的pyplot子库提供了和MATLAB类似的绘图API,方便用户快速绘制2D图表,包括直方图、饼图、散点图等Matplotlib配合NumPy模块使用,可以实现科学计算结果的可视化显示使用Matplotlib模块绘图概述安装Matplotlib模块Matplotlib的官网地址是/。可以直接从官网下载安装Matplotlib模块使用Matplotlib模块绘图,主要使用了Matplotlib.pyplot工具包Matplotlib是一套面向对象的绘图库,其绘制的图表中的每个绘图元素(例如线条、文字、刻度等)都是对象【例13.1】使用plot()函数画图(linecurve.py):绘制列表[1,2,5,6,8],即绘制x轴坐标值为0、1、2、3、4,所对应的y轴坐标值为1、2、5、6、8的折线图importmatplotlib.pyplotasplt#导入matplotlib模块中的子模块pyplotplt.plot([1,2,5,6,8])#绘制列表plt.ylabel('somenumbers')#设置y轴坐标标题plt.show()#显示图形绘制折线图:使用两个列表数据【例13.2】绘制y=x2的折线图(squarex.py)。使用numpy的linspace()函数生成x轴的坐标点列表,该列表取值范围为[0,10]内的100个点,然后计算y=x*x,最后绘制折线图importmatplotlib.pyplotasplt #导入模块importnumpyasnp #导入模块x=np.linspace(0,10,100) #生成x坐标点的列表y=x*x #生成x坐标点的列表(y=x*x)plt.plot(x,y) #绘制图形plt.show() #显示图形绘制多个图形【例13.3】编写程序(line3.py),在同一个图形中,绘制多条函数曲线y=0.5x、y=5x和y=x2importmatplotlib.pyplotasplt#导入模块importnumpyasnp#导入模块x=np.linspace(0,10,10)#生成x坐标点的列表plt.plot(x,x*0.5)#绘制图形y=0.5xplt.plot(x,x*5)#绘制图形y=5xplt.plot(x,x*x)#绘制图形y=x*x#plt.plot(x,x*0.5,x,x*5,x,x*x)#也可以使用一条语句同时绘制多个图形plt.show()#显示图形设置坐标轴范围importmatplotlib.pyplotasplt#导入模块importnumpyasnp#导入模块x=np.linspace(0,8,100)#生成x坐标点的列表plt.axis([0,8,10,80])#设置两个坐标轴的范围plt.plot(x,10+x*x)#绘制图形plt.show()#显示图形【例13.4】编写程序(axisScope.py),绘制图形y=10+x2,并设置x坐标轴的范围为[0,8],y坐标轴的范围为[10,80]在一个图形中同时绘制正弦曲线和余弦曲线importmatplotlib.pyplotasplt #导入模块importnumpyasnp #导入模块x=np.linspace(0,10,100) #生成x坐标点的列表plt.plot(x,np.sin(x),x,np.cos(x)) #绘制正弦曲线和余弦曲线plt.axis(xmin=0,xmax=11,ymin=-1.1,ymax=1.1) #设置两个坐标轴的范围plt.xlabel('x') #设置x轴坐标轴标题plt.ylabel('y') #设置y轴坐标轴标题plt.legend(['sin(x)','cos(x)'],loc='upperright') #设置图例plt.savefig('plot1.png’) #保存图形到文件plt.show() #显示图形【例13.5】编写程序(sincos.py),在一个图形中同时绘制正弦曲线和余弦曲线,设置x坐标轴的范围为[0,11],y坐标轴的范围为[-1.1,1.1]选择图表类型条形图(1)importmatplotlib.pyplotasplt#导入模块plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签#确定柱状图数量,可以认为是x轴刻度(地区:华中、华南、华东、华北、华西)x=[1,2,3,4,5]#x轴刻度y=[5,7,4,3,1]#y轴刻度(销售额,单位:百万)color=['red','black','green','orchid','blue']#颜色列表(红、黑、绿、淡紫色、蓝)x_label=['华中','华南','华东','华北','华西']#x轴刻度标签plt.xticks(x,x_label)#绘制x轴刻度标签plt.bar(x,y,color=color)#绘制y轴刻度标签plt.xlabel('地区')#绘制x轴坐标标题plt.ylabel('销售额(单位:百万)')#绘制y轴坐标标题plt.title('各地区产品年度销售额')#绘制图表标题plt.grid(True,linestyle=':',color='r',alpha=0.6)#设置网格刻度plt.show()#显示垂直柱状图【例13.6】使用Matplotlib模块绘制各地区产品年度销售额的垂直柱状图(bar1.py),图表标题为“各地区产品年度销售额”,x轴标题为“地区”,x轴刻度标签为“华中、华南、华东、华北、华西”,y轴标题为“销售额”,每个地区的销售额信息采用不同的颜色表示条形图(2)importmatplotlib.pyplotasplt#导入模块plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签x=[5,7,4,3,1]#x轴刻度(销售额,单位:百万)#确定柱状图数量,可以认为是y轴刻度(地区:华中、华南、华东、华北、华西)y=[1,2,3,4,5]color=['red','black','green','orchid','blue']#颜色列表(红、黑、绿、淡紫色、蓝)y_label=['华中','华南','华东','华北','华西']plt.yticks(y,y_label)#绘制y轴刻度标签plt.barh(y,x,color=color)#绘制x轴刻度标签plt.xlabel('销售额(单位:百万)')#绘制x轴坐标标题plt.ylabel('地区')#绘制y轴坐标标题plt.title('各地区产品年度销售额')#绘制图表标题plt.grid(True,linestyle=':',color='r',alpha=0.6)#设置网格刻度plt.show()#显示水平柱状图【例13.7】使用Matplotlib模块绘制各地区产品年度销售额水平柱状图(bar2.py)饼图(1)importmatplotlib.pyplotasplt#导入模块plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签labels=['住房','餐饮','娱乐','其他']#饼图标签percentages=[60.2,20.5,15.1,4.2]#饼图百分比plt.pie(percentages,labels=labels,autopct='%1.1f%%')#饼图参数plt.title("9月份家庭支出占比")#绘制图标标题plt.show()#显示饼图【例13.8】使用Matplotlib模块绘制9月份某家庭各项支出占比的饼状图(pie1.py),假设“住房”“餐饮”“娱乐”和“其他”支出分别占比60.2%、20.5%、15.1%和4.2%,图表标题为“9月份家庭支出占比”,需要显示出各项支出的名称和所占比例(保留一位小数)饼图(2)importmatplotlib.pyplotasplt#导入模块plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签labels=['住房','餐饮','娱乐','其他']explode=(0,0.1,0,0.1)#分离出第2个&第4个切片('餐饮'和'其他')percentages=[60.2,20.5,15.1,4.2]#饼图百分比plt.pie(percentages,explode=explode,labels=labels,autopct='%1.1f%%',shadow=True)plt.title("9月份家庭支出占比")#饼图标题plt.show()#显示饼图【例13.9】使用Matplotlib模块绘制9月份某家庭各项支出占比的饼状图(pie2.py),为每块饼增加阴影,并分离出“餐饮”和“其他”这两个饼块散点图importmatplotlib.pyplotasplt#导入模块importnumpyasnp#导入模块x=np.random.randn(1000)#生成由1000个随机点组成的x坐标y=np.random.randn(1000)#生成由1000个随机点组成的y坐标size=np.random.randn(1000)#生成由1000个随机点组成的大小colors=np.random.rand(1000)#生成由1000个随机点组成的颜色plt.scatter(x,y,s=size,c=colors)#绘制由1000个随机点组成的散点图plt.show()#显示图形【例13.10】编写程序(scatters.py),生成1000个随机大小和随机颜色的随机点(x,y),并绘制其散点图绘制直方图importnumpyasnp#导入numpy模块importmatplotlib.pyplotasplt#导入matplotlib模块中的子模块pyplot#随机生成满足mu为100、sigma为20的正态分布的10万个智商数据mu,sigma=100,20x=mu+sigma*np.random.randn(100000)plt.hist(x,bins=50)#绘制直方图plt.xlabel('IQ')#绘制x轴坐标标题plt.ylabel('Probability')#绘制y轴坐标标题plt.title('HistogramofIQ')#绘制图表标题plt.grid(True)#显示网格plt.show()#显示直方图【例13.11】使用Matplotlib.pyplot的hist()函数绘制直方图示例(histfig.py):随机生成满足mu为100、sigma为20的正态分布的10万个智商数据,并绘制其直方图绘制多个子图importmatplotlib.pyplotasplt #导入模块importnumpyasnp #导入模块x=np.linspace(0,10,100) #生成x轴的列表数据(范围[0,10]中的100个点)fig1=plt.figure() #创建一个Figure对象ax1=fig1.add_subplot(2,1,1) #创建一个子图:2行1列中的第1个图ax1.plot(x,np.sin(x)) #绘制y=sin(x)ax1.set_title('sin(x)') #设置图表标题ax2=fig1.add_subplot(2,1,2) #创建一个子图:2行1列中的第2个图ax2.plot(x,np.cos(x)) #绘制y=cos(x)ax2.set_title('cos(x)') #设置图表标题plt.show() #显示图形【例13.12】绘制多个子图示例(multifigs.py):利用NumPy模块和Matplotlib.pyplot工具包绘制y=sin(x)以及y=cos(x)的函数曲线本章小结实验和习题上机实践1~6复习题单选题填空题案例研究:汉诺塔(TowerofHanoi)问题求解动画本章案例研究是通过一个基于turtle的汉诺塔问题求解动画的设计和实现,帮助读者进一步深入了解递归和turtle图形汉诺塔问题求解移动圆盘的规则如下:(1)一次只能移动一个圆盘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服务质量回访制度执行细则
- 手术安全核查制度实施规范
- 2026年4月重庆万州区周家坝街道公益性岗位招聘1人农业笔试参考题库及答案解析
- 2026北京市丰台区南苑社区卫生服务中心招聘(三)农业考试备考试题及答案解析
- 2026福建三明清流县总医院编外人员招聘10人农业笔试模拟试题及答案解析
- 2026黑龙江漠河市龙鑫城市投资建设发展有限公司招聘汽车驾驶员2人农业考试备考试题及答案解析
- 2026上半年四川乐山职业技术学院考核招聘7人农业考试备考题库及答案解析
- 消防器材安装使用维护巡检制度
- 涂装车间粉尘排放控制制度
- 2026福建龙岩武平县总医院北院区(县妇幼院)临时用工人员招聘6人农业笔试参考题库及答案解析
- 油泼面课件教学课件
- 2025年中国建筑业企业数字化研究报告
- 草原灭鼠施工方案
- 牙髓炎根管治疗流程
- 洗煤厂检修作业规程(洗、选、装、运区域检修作业措施)
- 食源性疾病知识培训
- 中国中型高压电机项目投资可行性研究报告
- 游戏推广员工合同范本
- 浙教版小学体育册教案(2025-2026学年)
- 小学生读书分享图
- 机关单位食堂承包方案
评论
0/150
提交评论