python 多组直方图 画图_python数据可视化
python可视化一般可以通过以下三个子库来实现,看到一篇不错的文章推荐给大家。matplotlib,seaborn,pyecharts 128种画图方法matplotlib、seaborn、pyecharts可视化作图whjtop.cn本文将从二维绘图、三维绘图、金融图表三个方面来总结matplotlib库的使用。1.二维绘图主要绘图函数在matplotlib.pyplot子库中。1.1一维数
·
python可视化一般可以通过以下三个子库来实现,看到一篇不错的文章推荐给大家。
matplotlib,seaborn,pyecharts 128种画图方法
matplotlib、seaborn、pyecharts可视化作图whjtop.cn
本文将从二维绘图、三维绘图、金融图表三个方面来总结matplotlib库的使用。
1.二维绘图
主要绘图函数在matplotlib.pyplot子库中。
1.1一维数据集
#导入库
import numpy as np
import matplotlib.pyplot as plt
#生成20个标准正态分布随机数
np.random.seed(1000)
y=np.random.standard_normal(20)
#生成连续整数作为x值,并与y值个数相同
#len(y)计算y中元素个数
#range函数生成从0开始的一系列连续整数
x=range(len(y))
#plot函数需要x,y两组数值
plt.plot(x,y)
#操作网格线
plt.grid(True)
plt.plot(x,y)
#操作坐标轴 有tight image等命令
#限定坐标轴最大值和最小值
plt.xlim(0,20)
plt.ylim(-2,2)
plt.plot(x,y)
#axis[xmin,xmax,ymin,ymax]也可以限定坐标轴极值
plt.axis([0,20,-2,2])
plt.plot(x,y)
#操作标签 x轴、y轴、标题
plt.xlabel('x值')
plt.ylabel('y值')
plt.title('折线图')
plt.plot(x,y)
#改变线条颜色、数据点属性
#黑色 圆点 虚线 linestyle='--'也可以替换为dashed linewidth改变线的粗细
plt.plot(x,y,color='k',marker='o',linestyle='--',linewidth=6)
1.2二维数据集
两个数据集xy刻度不同,或需要以不同方式可视化,如一个线图一个柱状图。
#建立二维数组 20*2numpy ndarray
np.random.seed(1000)
y=np.random.standard_normal((20,2))
#不定义x,直接画图也可以
plt.plot(y)
#'ro'表示红色圆点标记,在一些代码中经常看到
plt.plot(y,'ro')
#选择两个数据子集,添加标签
#plt.legend接受位置参数 plt.legend(loc=0) 0表示最佳位置 数字
plt.plot(y[:,0],color='r',lw=1,label='1st')
plt.plot(y[:,1],color='y',lw=4,label='2nd')
plt.legend(loc=0)
#将其中一个数据集扩大100倍后 作图观察
y[:,0]=y[:,0]*100
plt.plot(y)
#直接写y 与分组写 作图结果相同 见下图
#加标签 legend
plt.plot(y[:,0],label='1st')
plt.plot(y[:,1],label='2nd')
plt.legend(loc=0)
#图中发现标签为2nd的数据集几乎呈水平,不能观察出数据走势
想解决以上问题,有两种方法
- 使用两个y轴(左/右)
- 使用两个子图(左/右、上/下)
#使用两个y轴 plt.twinx()增加一个y轴
ax1=plt.subplots()#不写不影响结果
plt.plot(y[:,0],color='c',label='1st')
plt.xlabel('x轴')
plt.ylabel('y1轴')
plt.legend(loc=0)
plt.twinx()
plt.plot(y[:,1],color='m',label='2nd')
plt.ylabel('y2轴')
plt.legend(loc=3)
#使用两个子图
#一行两列 第一个子图
plt.subplot(1,2,1)
plt.plot(x,y[:,0])
#一行两列 第二个子图
plt.subplot(1,2,2)
#还可以改变子图类型 如柱状图
plt.bar(x,y[:,1],width=0.8)
2.三维绘图
#增加第三维数据集
c=np.random.randint(0,10,len(y))
plt.scatter(y[:,0],y[:,1],c=c,linewidths=2)
#颜色图例彩条
plt.colorbar()
3.其他金融图表
- 常规直方图
#常规直方图
y1=np.random.standard_normal((10,2))
plt.axis([-3,3,-3,3])
plt.hist(y1,bins=10)
- 堆积直方图
#堆积直方图
plt.axis([-3,3,-3,6])
plt.hist(y1,rwidth=0.6,stacked=True)
#stacked表示堆积 rwidth条块宽度
- 箱线图
#箱线图
ax1=plt.boxplot(y1)
- 蜡烛图(暂未涉及)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)