1. 程式人生 > >Python 資料分析Matplotlib入門

Python 資料分析Matplotlib入門

1.簡單繪圖

    讓影象顯示出來的方法:

    方法一:

    plt.plot(a,b)

    plt.show()

    方法二:

    %matplotlib inline
    plt.plot(a, b)

   # %timeit 表示程式碼執行的時間

   %timeit

  # 第三個引數表示線段的型別,
  plt.plot(a, b, '--')

  plt.plot(t,s,'r--',label='aaaa')
  plt.plot(t*2, s, 'b--', label='bbbb')
  plt.xlabel('this is x')
  plt.ylabel('this is y')
  plt.title('this is a demo')
  # 使用plt.legendlegend將要顯示的資訊來自於上面程式碼中的label資訊;
  plt.legend()
  # plt.plot()

2.subplot繪子圖

 # subplot的引數的意思是2行2列,位置是1的subplor子圖
  plt.subplot(221) 
  plt.plot(x, y1, 'b--')
  plt.ylabel('y1') 
  # 設定2行2列的第二個子圖 
  plt.subplot(222) 
  plt.plot(x, y2, 'r--')
  plt.ylabel('y2')
  plt.xlabel('x')
  # 設定2行2列的第三個子圖 
  plt.subplot(223)
  plt.plot(x, y1, 'r*')
  plt.subplot(224)
  plt.plot(x, y1, 'b*')

  plt.show()

  # 由plt.subplots返回的是一個元組;
  # 元組的第一個元素表示畫布;
  # 第二個元素表示畫圖
  # subplots的引數表示將畫布分成幾行幾列
  figure, ax = plt.subplots(2,2)
  ax[0][0].plot(x, y1)
 ax[0][1].plot(x, y2)
  plt.show()

3.Pandas繪圖之Series

 #先構造Series的資料

 # cumsum用法(求累計次數)
 s1 = Series(np.random.randn(1000)).cumsum()
 s2 = Series(np.random.randn(1000)).cumsum()

 # grid引數是方格,
 s1.plot(kind='line',grid=True, label='S1', title='This is Series')
 s2.plot(label='S2') 

 plt.legend()
 plt.show()

 # 分成兩行一列的子圖
 fig, ax = plt.subplots(2,1) 

 ax[0].plot(s1)

 ax[1].plot(s2)

 plt.show()

 fig, ax = plt.subplots(2,1)

 s1[0:10].plot(ax=ax[0], label='S1', kind='bar')
 s2.plot(ax=ax[1], label='S2')

 plt.show()

4.Dataframe畫圖與Series類似

df = DataFrame(
    np.random.randint(1,10,40).reshape(10,4),
    columns=['A','B','C','D']
)

# bar的意思是直方圖,kind是線型圖
df.plot(kind='bar')

plt.show()

5.matplotlib裡的直方圖和密度圖

直方圖:

s = Series(np.random.randn(1000))

plt.hist(s, rwidth=0.9)

密度圖:

s.plot(kind='kde')

plt.show()