本文是学习《利用Python进行数据分析》的部分笔记,在这里感谢作者
一:线性图:
Seris和DataFrame都有一个用于生成各类图表的plot方法,默认情况下,它们生成的是线形图:
>>> s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot()
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000C65A3C8>
DataFrame的plot方法会在一个subplot中为各列绘制一条线,并自动创建图例:
>>> df=DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))
Series.plot方法的参数:
label 用于图例的标签
ax 要在其上绘制的matplotlib subplot对象,如果没有设置,则使用当前的matplotlib subplot
style 将要传给matplotlib的风格字符串,(如'ko--')
alpha 图表的填充不确定度(0到1之间)
kind 可以是‘line',’bar‘(垂直),’barh‘(水平),’kde‘
logy 在Y轴上使用对数标尺
xticks 用作x轴刻度的值
yticks 用作y轴刻度的值
xlim X轴的界限(例如[0,10])
ylim Y轴的界限
grid 显示抽网格线(默认打开)
DataFrame还有一些对列进行灵活处理的选项
subplots 将各个列是否绘制到单独的subplot中
sharex 如果subplot=True,则共用一个X轴,包括刻度和界限
sharey 如果subplot=False,则共用一个Y轴。
figsize 表示图像大小的元组
title 表示图像标题的字符串
legend 添加一个subplot的图例,默认为True
sort_columns 以字母表顺序绘制各列,默认使用当前列顺序
二:柱状图
在生成线形图的代码中加上(kind='bar'(垂直柱状图)或kind='barh'(水平柱状图)即可生成柱状图
>>> fig,axs=plt.subplots(2,1)
>> >data=Series(np.random.rand(16),index=list('abcdefghijklmnop'))
>>> data.plot(kind='bar',ax=axs[0],color='k',alpha=0.7)
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000074F85C0>
>>> data.plot(kind='barh',ax=axs[1],color='k',alpha=0.7)
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000007C3A9E8>
对于DataFrame,柱状图会将每一行的值分为一组:
>>> df=DataFrame(np.random.rand(6,4),index=['one','two','three','four','five','six'],columns=pd.Index(['A','B','C','D'],name='Genus'))
df.plot(kind='bar')
三:直方图和密度图:
通过Series的hist方法,可以生成直方图,调用plot时加上kind='kde'即可生成一张密度图:
>>> cop1=np.random.normal(0,1,size=200)
>>> cop2=np.random.normal(10,2,size=200)
>>> values=Series(np.concatenate([cop1,cop2]))
>>> values.hist(bins=100,alpha=0.3,color='k',normed=True)
>>>
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000082AA630>
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000082AA630>
四:散点图:
利用plt.scatter即可轻松绘制一张简单的散点图。