依旧参照《利用Python进行数据分析》,过一遍基础。
导库import pandas as pd
,import numpy as np
,import matplotlib.pyplot as plt
线型图
plot方法可以生成Series和DataFrame的线型图,对象的索引将用于绘制X轴(默认情况下)
s = pd.Series(np.random.randn(10).cumsum(), index=np.arange(0, 100, 10))
s.plot()
plt.show()
df = pd.DataFrame(np.random.randn(10, 3).cumsum(0), columns=['A', 'B', 'C'], index=np.arange(0, 100, 10))
df.plot()
plt.show()
Dataframe的plot方法会自动创建图例
Series.plot参数
DataFrame.plot参数
柱状图
kind='bar'
垂直柱状图kind='barh'
水平柱状图
ax参数可以指定在某个子图上作图
fig, axes = plt.subplots(2, 1)
data = pd.Series(np.random.randn(7), index=list('abcdefg'))
data.plot(kind='bar', ax=axes[0], color='k', alpha=0.7)
data.plot(kind='barh', ax=axes[1], color='g', alpha=0.7)
plt.show()
对于DataFrame,柱状图会将每一行的值分为一组
df = pd.DataFrame(np.random.rand(4, 3),
index=['one', 'two', 'three', 'four'],
columns=pd.Index(['A', 'B', 'C'], name='Genus'))
df.plot(kind='bar')
plt.show()
DataFrame各列的名称“Genus”作为图例的标题
设值stacked=True
可生成堆积柱状图
df.plot(kind='bar', stacked=True, alpha=0.5)
小技巧:利用value_counts图形化显示Series中各值的出现频率,例如:s.value_counts().plot(kind='bar')
直方图和密度图
- 直方图
.hist()
对频率进行离散化
s = pd.Series(np.random.randn(10))
s.hist(bins=50)
plt.show()
密度图
调用.plot()
时加上kind='kde'
s.plot(kind='kde')
散点图
.scatter()
传入X,Y轴
s = pd.Series(np.random.randn(10))
plt.scatter(np.arange(1, 11), s)
plt.show()