这一篇记录python的可视化工具matplotlib库,也就是把处理过DataFrame的结果给可视化出来,可以对照Excel的各种可视化结果。
这一篇主要学习折线图的基础绘制方法,不用复杂的数据集,只是学一下呈现方式和参数设置。
时间和值两个字段,选用折线图呈现一下值随着时间的发展趋势。
先将DATE列的数据类型转换为时间格式,使用pandas的to_datetime函数。
data = pd.read_csv('UNRATE.csv')
data['DATE']=pd.to_datetime(data['DATE'])
data.info()
一、画图。
导入matplotlib库。
import matplotlib.pyplot as plt
plt.plot()
plt.show()不传入任何数据是画一张空白的图。
first_twelve = data[0:12]
plt.plot(first_twelve['DATE'],first_twelve['VALUE'])
plt.show()将数据的前12行切片出来,然后传递进plot函数中,左侧DATE为x轴,右侧VLAUE为y轴,绘制出折线图。
二、坐标轴操作
如果想将x轴的日期进行旋转,需要用到xticks方法。
first_twelve = data[0:12]
plt.plot(first_twelve['DATE'],first_twelve['VALUE'])
plt.xticks(rotation=45)
plt.show()将x轴上的字旋转45度,使用ystick就可以将y轴上的字旋转制定角度。
增加轴标签、表头,一张图的基本属性都有了。
first_twelve = data[0:12]
plt.plot(first_twelve['DATE'],first_twelve['VALUE'])
plt.xticks(rotation=45)
plt.yticks(rotation=30)
plt.xlabel('Month')
plt.ylabel('Rate')
plt.title('First_Drawing')
plt.show()
三、子图
子图设置,画图时为了更好展示,有是需要进行对比,这时候就需要好几张图进行描述,正好用到子图。
子图函数fig=plt.figuer()
fig.add_subplot(X,Y,Z)
fig=plt.figure() #设定空白窗口,只运行这一张不会有显示。
ax1 = fig.add_subplot(4,3,1) #绘制子图,4代表有4行图,3代表有3列,1代表图是第一张。
ax2 = fig.add_subplot(4,3,5)
ax3 = fig.add_subplot(4,3,9)
plt.show()制定1、5、9,就将子图放置在1、5、9号位置
fig=plt.figure(figsize=(10,10))
ax1 = fig.add_subplot(4,3,1)
ax2 = fig.add_subplot(4,3,5)
ax3 = fig.add_subplot(4,3,9)
plt.show()
plt.figure是设定一个默认的空白区域,其中的figsize参数是制定这个区域的大小。这样得到了一个更大的图。
对子图进行绘制。
ax1.plot([1,2,3,4,5],[3,4,5,6,7])
ax2.plot(np.arange(5),np.random.randint(1,10,5))
plt.show()
指定子图中x、y传入内容即可。
四、多线绘制
同一张图中多线绘制。首先将数据集中的月份进行提取,制定画布尺寸,将第一至第十二月份切片和对应的值传入图中。再将第13至第24月,也就是第二年的切片和值传入图中,制定曲线颜色c的参数,最终进行展示。
data['month']=data['DATE'].dt.month
fig = plt.figure(figsize=(8,5))
plt.plot(data['month'][0:12],data['VALUE'][0:12],c='r')
plt.plot(data['month'][12:24],data['VALUE'][12:24],c='g')
plt.show()
画出前5年的数据。
plt.legend函数绘制了图例,参数为指定在图中的什么位置。
其中label参数要传递进绘制曲线的函数中,指定每条线叫什么。
color=['red','yellow','green','blue','black']
data['mnoth']=data['DATE'].dt.month
fig=plt.figure(figsize=(7,4))
for i in range(5):
start_month = i*12
end_month = (i+1)*12
label = str(1948 +i)
plt.plot(data['month'][start_month:end_month],data['VALUE'][start_month:end_month],c=color[i]
,label = label)
plt.legend = ('upper left')
plt.xlabel('Month')
plt.ylabel('Rate')
plt.title('Rate to Month')
plt.show()
这样就基本完成了折现图的基础操作了。
收藏不点赞都是耍流氓!哭哭