python绘制图表函数 python绘制非常漂亮的图表( 三 )


使用起来也挺简单,
首先import matplotlib.pyplot as plt 导入画图的图 。
然后给定x和y,用这个命令plt.plot(x, y)就能画图了,接着用plt.show()就可以把图形展示出来 。
接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在这篇文章里介绍的很详细 。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来 , 而且还是免费的 。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
假设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢 , 我在上篇文章中介绍过求Ahr999指数 , 那可不可以也放到这张图中呢?不就是加一条命令嘛
plt.plot(df['time'], df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊,原来两个Y轴不一致 , 显示出来太怪了,需要用多Y轴,问题来了 。
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig = plt.figure() # 多图
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price")# 绘制第一个图比特币价格
ax1.set_ylabel('BTC price') # 加上标签
# 第二个直接对称就行了
ax2 = ax1.twinx()# 在右边增加一个Y轴
ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999")# 绘制第二个图Ahr999指数 , 红色
ax2.set_ylim([0, 50])# 设定第二个Y轴范围
ax2.set_ylabel('ahr999')
plt.grid(color="k", linestyle=":")# 网格
fig.legend(loc="center")#图例
plt.show()
跑起来看看效果 , 虽然丑了点,但终于跑通了 。
这样就可以把所有指数都绘制到一张图中,等等 , 三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你 。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中 , 同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表 。
python画hist直方图 简单说下图形选择啦,通常我们最常用的图形是折线图、扇形图、条形图,它们的功能简单概括为:
折线图:表示变化情况;
扇形图:表示各类别的分布占比情况;
条形图:表示具体数值;
接下来要说的直方图是以条形图的形式展现的,在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示 。
以下展示了python画直方图的几种方式,这里涉及到了3个包:matplotlib、pandas、seanborn 。
1、使用 matplotlib.pyplot.hist 函数(本文主要讲解该方法画直方图)
2、使用 pandas.DataFrame.plot.hist 函数
3、使用 pandas.DataFrame.hist 函数
4、使用 seaborn.distplot 函数
以下为 matplotlib.pyplot.hist 函数介绍:
参数:
返回值:
模拟真实场景:我们通过分析打分,给1000个客户进行了排名,排名越靠前,说明客户越优异,为了找到特定的200个客户的排名处于这1000个客户中的位置,使用了直方图对比的方式 。以下使用的数据是为模拟场景,随机出来的结果排名比较靠后,所以这些客户质量并不高:
hist:
matplotlib中文乱码:
Python matplotlib之函数图像绘制、线条rc参数设置为避免中文显示出错,需导入matplotlib.pylab库

推荐阅读