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可视化相关推荐

  1. 厉害了,用Python绘制动态可视化图表,并保存成gif格式

    作者 | 俊欣 来源 | 关于数据分析与可视化 最近有粉丝问道说"是不是可以将这些动态的可视化图表保存成gif图",小编立马就回复了说后面会写一篇相关的文章来介绍如何进行保存gif ...

  2. Python使用matplotlib可视化多个不同颜色的折线图、通过FontProperties为可视化图像配置中文字体可视化、并指定字体大小

    Python使用matplotlib可视化多个不同颜色的折线图.通过FontProperties为可视化图像配置中文字体可视化.并指定字体大小 目录

  3. Python使用matplotlib可视化气泡图、并使用encircle函数自定义多边形圈定可视化图像中的指定区域(Bubble plot with Encircling)

    Python使用matplotlib可视化气泡图.并使用encircle函数自定义多边形圈定可视化图像中的指定区域(Bubble plot with Encircling) 目录

  4. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with regression line)

    Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数可视化不同分组散点图的最优线性回归拟合曲线(Scatter plot with linear regressio ...

  5. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线

    Python使用matplotlib可视化散点图.使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线(Each regression line in its o ...

  6. Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)

    Python使用matplotlib可视化散点图.并在可视化图像的底部和右边添加边缘直方图.自定义边缘直方图的色彩(Marginal Histogram) 目录

  7. Python使用matplotlib可视化相关性分析热力图图heatmap、使用seaborn中的heatmap函数可视化相关性热力图(Correllogram)

    Python使用matplotlib可视化相关性分析热力图图heatmap.使用seaborn中的heatmap函数可视化相关性热力图(Correllogram) 目录

  8. Python使用matplotlib可视化发散棒棒糖图、发散棒棒糖图可以同时处理负值和正值、并按照大小排序区分数据、为发散棒棒糖图的特定数据点添加标签、自定义背景填充色、自定义数据点颜色

    Python使用matplotlib可视化发散棒棒糖图.发散棒棒糖图可以同时处理负值和正值.并按照大小排序区分数据.为发散棒棒糖图的特定数据点添加标签.自定义背景填充色.自定义数据点颜色(Diverg ...

  9. python使用matplotlib可视化、自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib)

    python使用matplotlib可视化.自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib y aix ...

最新文章

  1. html的表单图形验证码怎么做,form表单验证加验证码.html
  2. 解决 Windows Update 时提示当前无法检查更新,因为未运行服务
  3. 清华新生C++作业难上热搜!大厂猎头表示做上了直接给offer
  4. 框架中的Blob数据的定义
  5. 跑通通过人脸测试心率程序
  6. wireshark----教你如何抓包
  7. 查看各浏览器各版本的兼容情况
  8. 多维数组的本质和指针数组
  9. 获取点击按钮的元素_Web API - DOM元素属性操作
  10. Jenkins插件Gerrit Trigger配置,实现change-merged时自动触发Jenkins工程build
  11. C++ STL算法adjacent_find(09)
  12. 图解通信原理与案例分析-17:2G GPRS通用分组无线业务详解
  13. 行测-图形推理-2-黑白格类
  14. 浅学一点空间转换3D和动画知识
  15. vue 项目使用 webpack 构建自动获取电脑ip地址
  16. 商云通安装(一):电信搭建SIP电话环境
  17. 计算机五大部件相关知识
  18. ffmpeg Operation not permitted 报错的解决过程记录
  19. mysql workbench6.3.7_mysql workbench官方版
  20. 帕金《宏观经济学》第8版课后习题答案

热门文章

  1. RocketMQ Apache顶级项目之路
  2. LA 6474 Drop Zone (最小割)
  3. JQuery添加扩展方法(理解$.extend(),与$.fn.extend()方法区别)
  4. Windows Phone 8 开发资源汇总
  5. ASA防火墙11 应用层检测
  6. Java动态代理的应用
  7. 你的网站添加X-UA-Compatible meta标签了吗?
  8. 入门代码教程第二节 如何:实现服务协定
  9. Berkeley DB——Database
  10. MathType使用