• python绘图


      1 import mayplotlib.pyplot as plt
      2 #mayplotlib所绘制的图位于图片中,可以使用plt.figure生成一个新的图片
      3 fig = plt.figure()
      4 #你不能使用空白的图片进行绘图,需要使用add_subplot创建一个或多个子图
      5 #图片应该是2x2的,最多四个,选择了四个图片中的第一个序号从1开始
      6 ax1 = fig.add_subplot(2,2,1)
      7 ax1 = fig.add_subplot(2,2,2)
      8 ax1 = fig.add_subplot(2,2,3)
      9 #k--是用于绘制黑色分段线的style选项
     10 plt.plot(np.random.randn(50).cumsum(),'k--')
     11 #使用子图网格创建图片,使用plt.subplots创建一个新的图片,返回包含已生成子图对象的numpy数组
     12 fig, axes = plt.subplots(2,3)
     13 #plt.subplots选项
     14 #nrows 子图的行数
     15 #ncols 子图的列数
     16 #sharex 所有子图使用相同的x轴刻度
     17 #sharey 所有子图使用相同的y轴刻度
     18 #subplot_kw 传入add_subplot的关键字参数字典,用于生成子图
     19 #**fig_kw 在生成图片时使用的额外关键字参数,例如plt.subplots(2,2,figsize=(8,6))
     20 #调整子图周围的间距,wspace,hspace控制图片的宽度和高度百分比
     21 subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)
     22 fig,axes = plt.subplots(2,2,sharex=True,sharey=True)
     23 for i in range(2):
     24     for j in range(2):
     25         axes[i,j].hist(np.random.randn(500),bins=60,color='k',alpha=0.5)
     26 plt.subplots_adjust(wspace=0,hspace=0)
     27 #颜色标记和线类型
     28 plot(randn(30).cumsum(),color='k',linestyle='dashed',marker='o')
     29 #刻度标签和图例
     30 #设置标题、轴标签、刻度、刻度标签
     31 fig = plt.figure()
     32 ax = fig.add_subplot(1,1,1)
     33 ax.plt(np.random.randn(100).cumsum())
     34 #要改变x轴的刻度,使用set_xticks 和set_xticklabels  rotation选项将x轴刻度标签旋转30度
     35 ticks = ax.set_xticks([0,250,500,750,1000])
     36 labels = ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small')
     37 ax.set_title('my first plot')
     38 ax.set_xlabel('stages')
     39 #添加图例
     40 from numpy.random import randn
     41 fig = plt.figure()
     42 ax = fig.add_subplot(1,1,1)
     43 ax.plot(randn(1000).cumsum(),'k',label='one')
     44 ax.plot(randn(1000).cumsum(),'k',label='two')
     45 ax.plot(randn(1000).cumsum(),'k',label='three')
     46 ax.legend(loc='best')
     47 #注释与子图加工,使用text、arrow、annote添加注释和文本
     48 from datatime import datetime
     49 fig = plt.figure()
     50 ax = fig.add_subplot(1,1,1)
     51 data = pd.read_csv('examples/spx.csv',index_col=0,parse_dates=True)
     52 spx = data['SPX']
     53 spx.plot(ax=ax,style='k--')
     54 crisis_data = [
     55     (datetime(2007,10,11),'Peak of bull market'),
     56     (datetime(2008,3,12),'Bear Stearns Fails'),
     57     (datetime(2008,9,15),'Lehman Bankruptcy')]
     58 for date ,label in crisis_data:
     59     ax.annotate(label,xy=(date,spx.asof(date) + 75),
     60                     xytext=(date,spx.asof(date) + 225),
     61                     arrowprops=dict(facecolor='black',headwidth=4,widtg=2,headlength=4),
     62                     horizontalalignment='left',verticalalignment='top')
     63 ax.set_xlim(['1/1/2007','1/1/2011'])
     64 ax.set_ylim([600,1800])
     65 ax.set_title('Important dates in the 2008-2009 financial crisis')
     66 #在图表中添加图形,需要生成patch对象shp,并调用ax.add_patch(shp)加入到子图中
     67 fig = plt.figure()
     68 ax = fig.add_subplot(1,1,1)
     69 rect = plt.Rectangle((0.2,0.75),0.4,0.15,color='k',alpha=0.3)
     70 circ = plt.Circle((0.7,0.2),0.15,color='b',alpha=0.3)
     71 ax.add_patch(rect)
     72 ax.add_patch(circ)
     73 #将图片保存到文件
     74 plt.savefig('figpath.svg')
     75 plt.savefig('figpath.png',dpi=400,bbox_inches='tight')
     76 #折线图
     77 s = pd.Series(np.random.randn(10).cumsum(), index=np.arange(0,100,10))
     78 s.plot()
     79 df = pd.DataFrame(np.random.randn(10,4).cumsum(0),columns=['A','B','C','D'],index=np.arange(0,100,10))
     80 df.plot()
     81 #柱状图,plot.bar() plot.barh()分别绘制垂直和水平柱状图
     82 fig,axes = plot.subplots(2,1)
     83 data = pd.Series(np.random.randn(16),index=list('abcdefghijklmnop'))
     84 data.plot.bar(ax=axes[0],color='k',alpha=0.7)
     85 data.plot.barh(ax=axes[1],color='k',alpha=0.7)
     86 
     87 df = pd.DataFrame(np.random.randn(6,4).cumsum(0),columns=pd.Index['A','B','C','D'],index=['one','two','three','four','five','six'],name='Genus'))
     88 df.plot.bar()
     89 #堆积柱状图
     90 df.plot.barh(stacked=True,alpha=0.9)
     91 
     92 
     93 tips = pd.read_csv('tips.csv')
     94 party_counts = pd.crosstab(tip['day'],tips['size'])
     95 party_counts = party_counts.loc[:,2:5]
     96 party_pcts = party_counts.div(party_counts.sum(1),axis=0)
     97 party_pcts.plot.bar()
     98 #使用searborn包
     99 import seaborn as sns
    100 tips['tip_pct'] = tip['tip'] / (tips['total_bill']-tips['tip'])
    101 sns.barplot(x='tip_pct',y = 'day',data=tips,orient='h')
    102 #直方图和密度图
    103 tips['tip_pct'].plot.hist(bins=50)
    104 tips['tip_pct'].plot.density()
    105 #散点图或点图
    106 macro = pd.read_csv('macrodata.csv')
    107 data = macro[['cpi','mi','tbilrate','unemp']]
    108 datas = np.log(data).diff().dropna()
    109 sns.regplot9'mi','unemp',data=datas)
    110 sns.pairplot(datas,diag_kind='kde',plot_kws={'alpha':0.2})
    111 #分面网格和分类数据
    112 sns.factorplot(x='day',y='tip_pct',hue='time',col='smoker',kind='bar',data=tips[tips.tip_pct < -1])

    参考书籍:利用 python 进行数据分析

    作者:舟华520

    出处:https://www.cnblogs.com/xfzh193/

    本文以学习,分享,研究交流为主,欢迎转载,请标明作者出处!

  • 相关阅读:
    angularjs的$on、$emit、$broadcast
    angularjs中的路由介绍详解 ui-route(转)
    ionic入门教程-ionic路由详解(state、route、resolve)(转)
    Cocos Creator 加载使用protobuf第三方库,因为加载顺序报错
    Cocos Creator 计时器错误 cc.Scheduler: Illegal target which doesn't have uuid or instanceId.
    Cocos Creator 构造函数传参警告 Can not instantiate CCClass 'Test' with arguments.
    Cocos Creator 对象池NodePool
    Cocos Creator 坐标系 (convertToWorldSpaceAR、convertToNodeSpaceAR)
    Cocos Creator 常驻节点addPersistRootNode
    Cocos Creator 配合Tiled地图的使用
  • 原文地址:https://www.cnblogs.com/xfzh193/p/12120384.html
Copyright © 2020-2023  润新知