python之matloplib可视化
import matplotlib.pyplot as plt import numpy as npx = np.linspace(-10, 20, 50, True) y = 2 * x + 5# 一、画散点图 plt.scatter(x,y,s=40,c='Orange',edgecolors='k',marker='s',alpha=0.5) #s:大小;c:内部颜色;edgecolors:边框颜色;marker:点的形状;alpha:透明度 plt.show()# 二、画折线图与线段 plt.figure() plt.plot(x, y, label='line1') plt.plot(x, y + 4, c='r', lw=2, ls=':', label='line2') # c:颜色;lw:线宽;ls:线段类型,有“:”“--”“-”等;lebel:画图图例; plt.plot([-10, 0], [-10, 0], ls='--', label='line3') # 两点连线 plt.legend() plt.show()# 三、画柱状图 # 1、单一柱状图 plt.figure() bar_x = np.arange(5) bar_y = np.arange(5) rects = plt.bar(bar_x, height=bar_y, width=0.8,orientation='vertical') # 给每个柱添加数据标识 for rect in rects:plt.text(rect.get_x() + rect.get_width() / 2, rect.get_height(), rect.get_height(), ha='center', va='bottom') plt.show()# 2、横向柱状图 # method 1 : plt.figure() plt.barh(bar_y,bar_x,height=0.8,left=0) #left柱状图左边的起始位置,0表示从x=0开始 plt.show()# method 2 : plt.figure() plt.bar(x=0,bottom=bar_x, width=bar_y, height=0.5,orientation='horizontal') #bottom:柱状图底部起始位置为y=bar_x,orientation设置柱状图方向 plt.show()# 3、并列图 plt.figure() plt.bar(bar_x, height=bar_y, width=0.2,orientation='vertical',color='b') #第一个蓝色柱状图 plt.bar(bar_x+0.2, height=bar_y, width=0.2,orientation='vertical',color='r') #第二个红色柱状图,用bar_x+0.2设置宽度及柱状图偏移的方式将其与第一个图分开 plt.show()# 4、堆叠图 plt.figure() plt.bar(bar_x, height=bar_y, width=0.2,orientation='vertical',color='b') #第一个蓝色柱状图 plt.bar(bar_x, height=bar_y, width=0.2,bottom=bar_x,orientation='vertical',color='r') #第二个红色柱状图,用bottom=bar_x设置底部起点的方式将其与第一个图分开 plt.show()# 四、直方图(频数图) plt.hist(np.random.normal(0,2,1000),bins=100,density=True) #bins:分箱个数,若传入一个list,如[0,1,2,3]表示根据0、1、2、3位断点分箱 plt.show()# 五、饼状图 plt.figure() plt.axes(aspect=1) #设置xy比例不然饼状图会被压扁 plt.pie([1,2,3,4,5],explode=[0.5,0,0,0,0],labels=list('abcde'),autopct='%.2f%%',shadow=True) #explode:一个list表示每一部分离中心的距离,autopct='%.2f%%'显示百分比,shadow=True生成阴影更好看 plt.show()# 六、箱形图 plt.figure() plt.boxplot(np.random.normal(0,1,1000),sym='o',whis=1.5) #sym异常点显示类型,whis设置异常点范围,[Q1-whis*IQR,Q3+whis*IQR]以外的为异常值 plt.figure() plt.boxplot(np.random.normal(0,1,(1000,4)),sym='o',whis=1.5) #传入多维数组可以画多个箱形图 plt.show()# 七、画坐标轴为日期的图 d=['2019-01','2019-02','2019-03','2019-04','2019-05','2019-06','2019-07','2019-08','2019-09','2019-10','2019-11','2019-12'] plt.plot_date(d,y[0:12]) plt.show()# 八、设置画板figure plt.figure(num='fig1',figsize=(8,6),facecolor='w',edgecolor='k') #num:画板名,figsize=(8,6)画板长宽,facecolor:底色,edgecolor边框颜色 plt.title('fig1') 添加图标题 plt.plot([0,1],[0,1]) plt.figure(num='fig2') #定第二个画板,可以显示两个图,不然会在原来的fig2上覆盖 plt.title('fig2') plt.plot([0,1],[1,0]) # 获取当前图标与子图可以使用plt.gcf()和plt.gca()获得,分别表示Get Current Figure和Get Current Axes,在pyplot模块中, # 许多函数都是对当前的Figure或Axes对象进行处理,比如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。 plt.show()# 九、坐标轴设置 plt.figure() plt.title('fig1') plt.xlim((0, 10)) # 修改x坐标轴范围 plt.plot([0, 20], [20, 0]) plt.xlabel(r'$x\ label$') # 添加x轴标签,matplotlib中使用$$表示latex数学字符,空格要用\转义 plt.figure() plt.title('fig2') plt.xticks(np.linspace(0, 10, 3, True)) # 修改x标签的数值间隔 plt.plot([0, 10], [10, 0])plt.figure() plt.title('fig3') plt.xticks(ticks=np.linspace(0, 10, 3, True), labels=['2015', '2016', '2017']) # 用lebals替换x轴ticks的对应数值 plt.plot([0, 10], [10, 0])plt.figure() plt.title('fig4') ax = plt.gca() ax.spines['right'].set_color('None') # 去除右坐标轴颜色,相当于隐藏,spines表示子图方框线集合,left、bottom、right、top表示四个方框线 ax.spines['top'].set_color('None') # 去除上坐标轴颜色,相当于隐藏 ax.xaxis.set_ticks_position('bottom') # 设置x轴位置为底部,可设置为上侧top ax.yaxis.set_ticks_position('left') # 设置y轴位置为左侧,可设置为右侧right ax.spines['bottom'].set_position(('data', 5)) # 底部的坐标轴放在y=5的位置,data表示采用数据轴,(data,5)替换成(axes,0.5)则表示放在y轴%50的位置 ax.spines['left'].set_position(('data', 5)) # 左侧的坐标轴放在x=5的位置 plt.plot([0, 10], [10, 0]) plt.show()#十、绘制图例 plt.figure() l1,=plt.plot(x,y,c='g',label='y=2*x+5') #返回值不止一个所以l1后面加一个逗号,参数label为画图图例 l2,=plt.plot(x,-y,c='y',label='y=2*x+5') plt.legend(loc='upper center') #显示所有画图图例,参数loc为图例位置,默认为loc='best',自动选取位置 plt.figure() l1,=plt.plot(x,y,c='g',label='y=2*x+5') l2,=plt.plot(x,-y,c='y',label='y=2*x+5') plt.legend(handles=[l1,l2],labels=['f=2*x+5','f=2*x+5'],loc='') #对特定的图添加指定的图例说明,参数handles为line对象 plt.show()# 十一、添加注解 # 1、给点添加注解 plt.figure() plt.scatter(1, 1, c='r', marker='o') # 画(1,1)点 plt.annotate(s=r'$this\ is\ an\ annotate$', xy=(1, 1), xycoords='data', xytext=(30, -30), textcoords='offset points',fontsize=16, arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')) #s:注释;xy:要注释的点的坐标;xycoords='data':点的坐标为数据坐标;xytext=(30, -30):注释的坐标为(30,-30); # textcoords='offset points':注释的坐标轴为以点为原点进行偏移;fontsize:字体大小; # arrowprops:设定箭头,arrowstyle箭头类型为'->',connectionstyle连接类型为'arc3,rad=.2'# 2、在指定位置添加注解 plt.figure() plt.scatter(1, 1, c='r', marker='o') # 画(1,1)点 plt.text(1,1,r'$this\ is\ a\ text$',fontdict=dict(size=16,color='r'), ha='center', va='bottom') #在点(1,1)处添加文档,ha、va表示左右上下对齐方式 plt.show()# 十二、绘制多个图在一个面板中 # method 1 :在大小相同的格子中画图 plt.subplot(221) #画板分为2*2,在位置1画图 plt.plot(x, y) plt.scatter(5,0,marker='o',edgecolors='b',facecolors='r') plt.subplot(222) plt.plot(x,-y) plt.show()# method 2 :在自定义大小的格子中画图 ax1=plt.subplot2grid((3,3),(0,0),colspan=3,rowspan=1) #画板分成3*3网格,ax1位置在(0,0),跨度为3列1行 ax1.plot([0,1],[0,1]) ax1.set_title('ax1') ax2=plt.subplot2grid((3,3),(1,1),colspan=3,rowspan=3) #画板分成3*3网格,ax1位置在(1,1),跨度为3列3行 ax2.plot(x,-y) ax2.set_title('ax2') ax3=plt.subplot2grid((3,3),(1,0),colspan=1,rowspan=1) #画板分成3*3网格,ax1位置在(1,0),跨度为1列1行 ax3.plot(x,-y) ax3.set_title('ax3') plt.show()# 十三、图中图,利用在同一画板定义多个坐标轴实现 fig=plt.figure() left,bottom,width,height=0.1,0.1,0.8,0.8 #定义坐标轴的左、下坐标轴位置,宽、高的跨度,用百分比的形式 ax1=fig.add_axes([left,bottom,width,height]) #加入第一个坐标轴 ax1.plot(x,y,c='y') ax1.set_titile('ax1') ax2=fig.add_axes([left,bottom,width,height]) #加入第二个坐标轴 ax2.plot(x,-y,c='g') ax2.set_titile('ax2') plt.show()# 十四、主次坐标轴 fig,ax1=plt.subplots() ax2=ax1.twinx() #镜像ax1得到次坐标轴 ax1.plot([0,1],[0,1],c='r') ax2.plot([0,1],[1,0],c='y') plt.show()
转载于:https://www.cnblogs.com/dwithy/p/11195374.html
python之matloplib可视化相关推荐
- 厉害了,用Python绘制动态可视化图表,并保存成gif格式
作者 | 俊欣 来源 | 关于数据分析与可视化 最近有粉丝问道说"是不是可以将这些动态的可视化图表保存成gif图",小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif ...
- Python使用matplotlib可视化多个不同颜色的折线图、通过FontProperties为可视化图像配置中文字体可视化、并指定字体大小
Python使用matplotlib可视化多个不同颜色的折线图.通过FontProperties为可视化图像配置中文字体可视化.并指定字体大小 目录
- Python使用matplotlib可视化气泡图、并使用encircle函数自定义多边形圈定可视化图像中的指定区域(Bubble plot with Encircling)
Python使用matplotlib可视化气泡图.并使用encircle函数自定义多边形圈定可视化图像中的指定区域(Bubble plot with Encircling) 目录
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with regression line)
Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with linear regressio ...
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线(Each regression line in its o ...
- Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)
Python使用matplotlib可视化散点图.并在可视化图像的底部和右边添加边缘直方图.自定义边缘直方图的色彩(Marginal Histogram) 目录
- Python使用matplotlib可视化相关性分析热力图图heatmap、使用seaborn中的heatmap函数可视化相关性热力图(Correllogram)
Python使用matplotlib可视化相关性分析热力图图heatmap.使用seaborn中的heatmap函数可视化相关性热力图(Correllogram) 目录
- Python使用matplotlib可视化发散棒棒糖图、发散棒棒糖图可以同时处理负值和正值、并按照大小排序区分数据、为发散棒棒糖图的特定数据点添加标签、自定义背景填充色、自定义数据点颜色
Python使用matplotlib可视化发散棒棒糖图.发散棒棒糖图可以同时处理负值和正值.并按照大小排序区分数据.为发散棒棒糖图的特定数据点添加标签.自定义背景填充色.自定义数据点颜色(Diverg ...
- python使用matplotlib可视化、自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib)
python使用matplotlib可视化.自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib y aix ...
最新文章
- html的表单图形验证码怎么做,form表单验证加验证码.html
- 解决 Windows Update 时提示当前无法检查更新,因为未运行服务
- 清华新生C++作业难上热搜!大厂猎头表示做上了直接给offer
- 框架中的Blob数据的定义
- 跑通通过人脸测试心率程序
- wireshark----教你如何抓包
- 查看各浏览器各版本的兼容情况
- 多维数组的本质和指针数组
- 获取点击按钮的元素_Web API - DOM元素属性操作
- Jenkins插件Gerrit Trigger配置,实现change-merged时自动触发Jenkins工程build
- C++ STL算法adjacent_find(09)
- 图解通信原理与案例分析-17:2G GPRS通用分组无线业务详解
- 行测-图形推理-2-黑白格类
- 浅学一点空间转换3D和动画知识
- vue 项目使用 webpack 构建自动获取电脑ip地址
- 商云通安装(一):电信搭建SIP电话环境
- 计算机五大部件相关知识
- ffmpeg Operation not permitted 报错的解决过程记录
- mysql workbench6.3.7_mysql workbench官方版
- 帕金《宏观经济学》第8版课后习题答案