博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AI小知识系列(四) Matplotlib常用操作
阅读量:4135 次
发布时间:2019-05-25

本文共 4276 字,大约阅读时间需要 14 分钟。

文章目录

Matplotlib常用操作

import matplotlib.pyplot as pltimport numpy as np

1.折线图

x_axis = [5,8,9,11,14,16,18,19]y_axis1= [19,18,16,14,11,8,9,5]y_axis2= [20,19,17,15,12,9,10,6]plt.plot(x_axis,y_axis1, c = "r", label = "red")plt.plot(x_axis,y_axis2, c = "b", label = "blue")#美化图的操作plt.xticks(rotation = 45)  #使x轴的数字旋转45°plt.xlabel("this is x_axis") #x轴标签plt.ylabel("this is y_axis") #y轴标签plt.title("this is title") #此图像的标题plt.legend(loc = "best") #为图像生成legend,loc参数为best指,在最适合的地方显示plt.show()

在这里插入图片描述

#plt.plot的常用参数如下plt.plot(x_axis,y_axis1, c = "r", label = "red",linestyle='--',marker='*',linewidth=2)#c---颜色参数,可选择'b'(蓝),'g'(绿),'r'(红),'c'(蓝绿),'m'(红),'y'(黄),'k'(黑),'w'(白)#label---折线的标签,用作legend的显示#linestyle---折现的样式,默认为None,可选择'-','--','-.',':'#marker---点的样式,默认None,可选择'o'(圆)  '.'(点)  'v'(下三角)  '^'  '*'(五角星) 'x'(叉号)等#linewidth -- 线宽

在这里插入图片描述

2.保存绘制的图像

#保存图像##在plt.plot运行后,使用plt.savefig,不能再plt.show之后再用,否则只能保存空图像plt.savefig("examples.jpg")

3.matplotlib输出中文问题

from pylab import mplmpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

4.绘图中的其他的操作

# 设置坐标轴的取值范围plt.xlim((-1, 1))plt.ylim((0, 2))#设置刻度##设置x坐标轴刻度, 原来为0.25, 修改后为0.5plt.xticks(np.linspace(0, 20, 5))##设置y坐标轴刻度及标签, $$是设置字体plt.yticks([10, 15], ['$minimum$', 'normal'])#关闭坐标轴的显示plt.axis('off')#legend的复杂操作l1, =plt.plot(x_axis,y_axis1, c = "r", label = "red")l2, =plt.plot(x_axis,y_axis2, c = "b", label = "blue")plt.legend(handles = [l1, l2,], labels = ['red', 'blue'], loc = 'best')#设置绘图风格plt.style.available  #查看可用的绘图风格plt.style.use("bmh") #使用某一个名叫bmh的绘图风格

5.子图–subplot讲解

plt.subplot(2,1,1)  #构建一个2行1列的子图,此处在第一个子图进行绘制plt.plot(x_axis,y_axis1, c = "r", label = "red")plt.title("this is title") #此图像的标题plt.legend(loc = "best") #为图像生成legend,loc参数为best指,在最适合的地方显示plt.subplot(2,1,2)  #此处在第二个子图进行绘制plt.plot(x_axis,y_axis2, c = "b", label = "blue")plt.xlabel("this is x_axis") #x轴标签plt.legend(loc = "best") #为图像生成legend,loc参数为best指,在最适合的地方显示plt.show()#两幅图像采用不同的配置

在这里插入图片描述

6.条形图绘制

X = [1, 2, 3, 4, 5, 6] #每条bar的位置Y1 = [2,3,6,1,7,8] #每条bar的高度值plt.bar(X, Y1, label='blue')plt.xlabel("this is x_axis") #x轴标签plt.ylabel("this is y_axis") #y轴标签plt.title("this is title") #此图像的标题plt.legend(loc = "best") #为图像生成legend,loc参数为best指,在最适合的地方显示plt.show()

在这里插入图片描述

plt.bar(X,Y1,alpha=0.5,width=0.8,color='b',edgecolor='r',label='blue',linewidth=3)#alpha---透明度,1代表不透明,0代表全透明。#width---柱子的宽度#color---柱状图填充的颜色,可采取的颜色同上#edgecolor---图形边缘的颜色,可采取的颜色同上#label---图像的标签#linewidth---边缘的宽度

在这里插入图片描述

plt.barh()  #横着来显示数据plt.barh(X,Y1,alpha=0.5,width=0.8,color='b',edgecolor='r',label='blue',linewidth=3)

在这里插入图片描述

7.散点图的绘制

x_axis = [5,8,9,11,14,16,18,19]y_axis1= [19,18,16,14,11,8,9,5]y_axis2= [20,19,17,15,12,9,10,6]plt.scatter(x_axis, y_axis1,color='r',label='red')plt.scatter(x_axis, y_axis2,color='b',label='blue')plt.xlabel("this is x_axis") #x轴标签plt.ylabel("this is y_axis") #y轴标签plt.title("this is title") #此图像的标题plt.legend(loc = "best") #为图像生成legend,loc参数为best指,在最适合的地方显示plt.show()#plt.scatter的参数同plt.plot,不在赘述

在这里插入图片描述

8.直方图的绘制

#直方图用来统计数据出现的频率Y=[1,1,2,2,2,3,3,4,4,4,4,5,5]plt.hist(Y)plt.show()

在这里插入图片描述

plt.hist(Y,alpha=0.8,facecolor='b')#range---默认None,选择直方图显示的范围#bins---指定我们显示的直方图的边界#alpha---透明度#facecolor---直方图颜色#histtype---直方图类型,可选‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
#绘制直方图的高级操作---一次绘制多个data = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]]labels = ['3K', '4K', '5K']bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000]#bins数组用来指定我们显示的直方图的边界,即:[0, 100) 会有一个数据点,[100, 500)会有一个数据点,以此类推。所以最终结果一共会显示7个数据点。同样的,我们指定了标签和图例。plt.hist(data, bins=bins, label=labels,color=['r','g','b'])plt.legend()plt.show()#此处引用 https://blog.csdn.net/hiudawn/article/details/80373996

在这里插入图片描述

9.盒图

Y=[1,1,2,2,2,3,3,4,4,4,4,5,5]plt.boxplot(Y)plt.show()

在这里插入图片描述

10.饼状图

labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']data = [1, 2, 3, 4, 5, 6, 7]  plt.pie(data, labels=labels, autopct='%1.2f%%')  # 第一个参数是占比,第二个各自的标签,第三个是显示精度plt.axis('equal')  #调整一下图plt.legend(loc='best')plt.show()#此处引用 https://blog.csdn.net/hiudawn/article/details/80373996

在这里插入图片描述

plt.pie(data,labels=labels,explode=[0.1 for i in range(7)], startangle=90,shadow=True,autopct='%1.2f%%')#lablels---每一块的标签#explode---每一块离中心的距离#startangle---起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起#shadow---是否有阴影#labeldistance---label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧#autopct---显示精度#pctdistance---类似于labeldistance,指定autopct的位置刻度#radius---控制饼图的半径

在这里插入图片描述

你可能感兴趣的文章
基于 OSGi 和 Spring 开发 Web 应用
查看>>
使用 Felix 和 Struts2 开发 Web 应用
查看>>
Web Service__CXF__两种开发的两种方式
查看>>
在windows安装配置Git开发环境
查看>>
初次运行 Git 前的配置
查看>>
java多线程 sleep()和wait()的区别
查看>>
applet操作本地文件
查看>>
applet 权限无限提升
查看>>
Java通过BufferedWriter追加内容到文件末尾的几种常用方法
查看>>
Windows Server 2008添加Hyper-V组件
查看>>
Win7 RTM及win v pc RC体验
查看>>
ExtJS的下拉选单Combobox中空选项的高度问题
查看>>
用Java实现按字节长度截取中英文数字字符串的方法总结
查看>>
IE和Firefox对同一域名进行请求的并发连接数限制
查看>>
windows任务定时重启tomcat
查看>>
ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid)
查看>>
设置默认表空间
查看>>
Spring中的事务
查看>>
Struts2+Spring3+Hibernate3整合
查看>>
Extjs3.4 带复选框的树结构(Tree+checkbox)案例
查看>>