Pandas继承和优化了matplotlib,因此可以直接使用Series和DataFrame对象通过plot()方法轻松地绘制图形。
使用pandas绘制图形时通常需配合matplotlib一起使用。
折线图
Series和DataFrame调用plot(),默认绘制折线图。
索引为X轴,数据为Y轴。
import pandas as pd
import matplotlib.pyplot as plt
#数据
dataDF = pd.DataFrame(data={'a':[1,2,3,4],
'b':[4,3,2,1]})
dataDF.plot(title='Show subplot',legend=True)
#title设置图名,legend=True表示展示图例
plt.show() #画图
分开显示多个图
通过设置plot()的参数subplot=True,可以将DataFrame的列自动拆分,然后分开显示为多个图像。
dadataDataFrame.plot(subplots=True,
title='Show subplot'
,legend=True)
plt.show()
散点图
使用plot.scatter()创建散点图
参数 x 指定x轴表示的列
参数 y 指定y轴表示的列
参数 s 可以设置每个元素的大小(可省略)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#数据
data_x = np.random.randint(0,100,size=100)
data_y = np.random.randint(0,100,size=100)
data = pd.DataFrame({'col_x':data_x,'col_y':data_y})
data.plot.scatter(x='col_x',y='col_y',
s=np.random.randint(1,100,size=100))
plt.show()
柱形图
使用plot.bar()创建柱形图。
import pandas as pd
import matplotlib.pyplot as plt
#数据
data = pd.DataFrame(data={'A':[10,30,40],
'B':[8,22,34],
'C':[12,23,50]},
index=['Class1','Class2','Class3'])
#画柱形图
data.plot.bar()
plt.show()
绘制堆叠柱形图
设置参数stacked=True ,来绘制堆叠的柱形图。
data.plot.bar(stacked=True)
plt.show()
直方图
使用 hist()方法来绘制直方图。通过设置参数bins来调整格子数量。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#数据
data = pd.DataFrame(data=np.random.randn(500,2))
data.hist(bins=100)
plt.show()
箱形图
使用plot.box()绘制箱型图。
import pandas as pd
import matplotlib.pyplot as plt
#数据
data_x = np.random.randint(0,100,size=100)
data_y = np.random.randint(50,100,size=100)
data_z = np.random.randint(80,160,size=100)
data = pd.DataFrame(data={'X':data_x,
'Y':data_y,
'Z':data_z})
#绘制箱型图
data.plot.box()
plt.show()
饼图
使用plot.pie()绘制饼图。
默认饼图为椭圆形,可以通过设定参数figsize来指定圆形大小。
import pandas as pd
import matplotlib.pyplot as plt
data = pd.Series(data=[10,20,30,40],
index=['a','b','c','d'])
ax = data.plot.pie(title='Pie Chart')
ax.set_ylabel('') #设置y轴标签为空,不设置默认为None
plt.show()
Pandas绘制饼图的时候,要单独设置一下y轴的标签,如果不想显示就设置为空。
~~End~~