2015-03-29-绘图和可视化(2)-pandas中的绘图函数

--
from pandas import DataFrame,Series


---------------------------------------------------------------------------------------
-----(二)pandas中的绘图函数
------1.线性图
s=Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot()


df=DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))
df.plot()


Series.plot方法的参数
--label 用于图例上的标签
--ax 要在其上进行绘制的matplotlib subplot对象。如果没有设置,则使用当前matplotlib subplot
--style 将要传给matplotlib的风格字符串(如'ko--')
--alpha 图表的填充不透明度(0-1之间)
--kind 可以是'line','bar','barh','kde'
--logy 在Y轴上使用对数标尺
--user_index 将对象的索引用作刻度标签
--rot 旋转刻度标签(0到360)
--xticks 用作X轴刻度的值
--yticks 用作Y轴刻度的值
--xlim X轴的界限(例如[0,10])
--ylim Y轴的界限
--grid 显示轴网格线(默认打开)


专用于DataFrame的plot的参数
--subplots 将各个DataFrame列绘制到单独的subplot中
--sharex 如果subplots=True,则共用同一个X轴,包括刻度和界限
--sharey 如果subplots=True,则共用同一个Y轴
--figsize 表示图像大小的元组
--title 表示图像标题的字符串
--legend 添加一个subplot图例(默认为True)
--sort_columns以字母表顺序绘制各列,默认使用当前列顺序


------2.柱状图
fig,axes=plt.subplots(2,1)
data=Series(np.random.randn(16),index=list('abcdefghijklmnop'))
data=data[data>0]
data.plot(kind='bar',ax=axes[0],color='k',alpha=0.7)
data.plot(kind='barh',ax=axes[1],color='k',alpha=0.7)


df=DataFrame(np.random.rand(6,4),
index=['one','two','three','four','five','six'],
columns=pd.Index(['A','B','C','D'],name='Genus'))
df
df.plot(kind='bar')


df.plot(kind='barh',stacked=True,alpha=0.5)


利用value_counts图形化显示Series中各值的出现频率,比如s.value_count().plot(kind='bar')
tips=pd.read_csv('ch08/tips1.csv')
party_counts=pd.crosstab(tips.day,tips.size_new)
party_counts
party_counts=party_counts.ix[:,2:5]
规格化 和为1
party_pcts=party_counts.div(party_counts.sum(1).astype(float),axis=0)
party_pcts
party_pcts.plot(kind='bar',stacked=True)


-----3.直方图和密度图
tips['tip_pct']=tips['tip']/tips['total_bill']
tips['tip_pct'].hist(bins=50)


tips['tip_pct'].plot(kind='kde')  
需要安装scipy(http://sourceforge.net/projects/scipy/files/scipy/0.15.1/  ||    http://blog.sina.com.cn/s/blog_62c832270101eo60.html)




comp1=np.random.normal(0,1,size=200)
comp2=np.random.normal(10,2,size=200)
values=Series(np.concatenate([comp1,comp2]))
values.hist(bins=100,alpha=0.3,color='k',normed=True)
values.plot(kind='kde',style='k--')


-----4.散布图
macro=pd.read_csv(r'ch08\macrodata.csv')
data=macro[['cpi','m1','tbilrate','unemp']]
trans_data=np.log(data).diff().dropna()
trans_data[-5:]
plt.scatter(trans_data['m1'],trans_data['unemp'])
plt.title('Changes in log %s vs. log %s'%('m1','unemp'))


pd.scatter_matrix(trans_data,diagonal='kde',color='k',alpha=0.3)

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值