subplots()方法快速绘制
subplots()方法快速的创建多子图环境,并返回一个包含子图的Numpy数组
fig, ax = plt.subplots(2,3,sharex=‘col’, sharey=‘row’)
通过sharex和sharey参数,自动地去掉了网格内部子图的坐标刻度等内容,实现共享,让图形看起来更整齐整洁。
元数据简略
数据就简单截个头截个尾。方便理解代码。
读取数据
import pandas as pd
import matplotlib as mpl
from matplotlib import pyplot as plt
#设置中文
mpl.rcParams[‘font.sans-serif’]=[‘SimHei’]
data=pd.read_csv(‘platVolume.csv’) #读数据
打印有多少家平台:
第一种方式
data1=data.drop_duplicates(['wdzjPlatId']) #去重
data1['wdzjPlatId'].count() #求总数量
第二种方式
data['wdzjPlatId'].nunique()
第三种方式
data['wdzjPlatId'].unique().size
结果512
打印所有平台一年内的成交量综合:
data2=data['amount'] #取出原数据的成交额
data2.sum().round(decimals=2) #求和保留俩位
结果:201089856.64
data.index=pd.to_datetime(data['date']) #取出时间转成datatime类型赋值给索引,为后面时间序列取数据做准备
figure,axes=plt.subplots(nrows=2,ncols=2,figsize=(10,8)) #首先新建一个图像(figure)和图(axes),图像figure包含多个或者一个axes(图)
#nrows为行,ncols为列,figsize为设置长宽(长,宽)
data['2016-07-03':'2017-06-30'].resample('M',how=sum)['amount'].plot(ax=axes[0][0],title='月成交额到17年6月底')
#第一个0为索引取得一行,第二个0为索引取得第一行的第一列,下面类似。
data['2016-07-03':'2017-07-02'].resample('M',how=sum)['amount'].plot(ax=axes[0][1],title='月成交额到17年7月余头')
data['2016-07-03':'2017-06-30'].resample('D',how=sum)['amount'].plot(ax=axes[1][0],title='日成交额到17年6月底')
data['2016-07-03':'2017-07-02'].resample('D',how=sum)['amount'].plot(ax=axes[1][1],title='日成交额到17年7月余头')
由月成交额对比可以看到,有第二张比第一张就多一个月的零头的数据,日数据也同理,只是不太好看。数据分析切记不要丢掉任何一点数据,否则带来的后果:咱也不知道,咱也不敢说。
add_subplot()方法
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
data=pd.read_csv('上市公司ROE预测.csv',encoding='ANSI') #读取csv,需要用这个编码
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
fig = plt.figure(figsize=(18,8)) #设置一个图像长宽
ax1 = fig.add_subplot(1,2,1) #添加子图 add_subplot(行,列,第几张图)
ax2 = fig.add_subplot(1,2,2)
data1=data[data['成长速度(%)']<0]
data2=data1.sort_values(by='成长速度(%)',ascending=True)
data2['成长速度(%)']=data2['成长速度(%)'].apply(lambda x:float(str(x).replace('-','')))
data3=data2[['行业代码','成长速度(%)']]
X=data3['行业代码'].values[:10]
Y=data3['成长速度(%)'].values[:10]
ax1.bar(X,Y)
ax1.set_title('成长速度下降速度比比值前十') #设置子图标题
ax1.set_xlabel('行业代码') #设置子图X轴名称
ax1.set_ylabel('成长速度比')#设置子图Y轴名称
data4=data2[['行业代码','资产规模']]
X1=data4['行业代码'].values[:10]
Y2=data4['资产规模'].values[:10]
ax2.plot(X1,Y2)
ax2.set_title('下降速度前十行业资产规模折线图')
ax2.set_xlabel('行业代码')
ax2.set_ylabel('资产规模')
plt.show()
这个方法可以另外设置xy轴名称,第一个方法,不知怎么设置xy轴方法。等找到了再来更新,学艺很浅,多多指教。