以前學習了一些通用的畫圖方法和技巧,此次就學一下其它各類不一樣類型的圖。好了先從散點圖開始,上代碼:api
from matplotlib import pyplot as plt import numpy as np n = 1024 #生成1024個點 x = np.random.normal(0, 1, n) #正態分佈x座標,均值0標準差1 y = np.random.normal(0, 1, n) #正態分佈y座標,均值0標準差1 color = np.arctan2(y, x) #這個用於渲染好看的顏色,本身琢磨意義,哈哈 plt.scatter(x, #x座標 y, #y座標 s=50, #點的大小 c=color, #顏色 alpha=0.5, #透明度 cmap='magma' #顏色板,看文檔或者源碼有不少類型,本身能夠試試,如summer、winter、pink ) plt.show()
散點圖仍是比較簡單,關於一些經常使用設置,如座標、圖例、文字等能夠看我以前的學習文章,還有就是不少參數這些看看api或者源碼都能搞懂的。dom
接下來是簡單用一下條形圖:學習
from matplotlib import pyplot as plt import numpy as np n = 12 x = np.arange(12) #12個條形 y1 = np.random.uniform(1, 10, n) #分佈1-10的高度 y2 = -np.random.uniform(1, 10, n) #分佈(-1)-(-10)的高度 plt.bar(x, y1) plt.bar(x, y2) #接下來在條形上下方加上數值 for x0,y0 in zip(x, y1): plt.text(x0, y0, '%.2f' % y0, #保留兩位小數 ha='center', #水平對齊方式 va='bottom' #垂直對齊方式 ) for x0, y0 in zip(x, y2): plt.text(x0, y0, '%.2f' % y0, # 保留兩位小數 ha='center', # 水平對齊方式 va='top' # 垂直對齊方式 ) plt.show()
好了,一個雙層的條形圖就完成了。其它還有什麼餅圖、直方圖、等高線圖等待不少,就不一一寫出來了,接下來再弄一弄在一個figure顯示多個圖吧spa
其實很簡單了,這裏要用到subplot(n,m,d)將圖分紅n行m列,添加地d個格子的圖像,接下來偷懶了,就用上面兩個例子放一塊兒就行了code
from matplotlib import pyplot as plt import numpy as np plt.figure(num=1, figsize=(12, 6))#設置figure屬性,由於要放兩張圖,這裏把寬度弄大點 plt.subplot(1, 2, 1)#1行2列第一個格子ax畫圖 n = 12 x = np.arange(12) #12個條形 y1 = np.random.uniform(1, 10, n) #分佈1-10的高度 y2 = -np.random.uniform(1, 10, n) #分佈(-1)-(-10)的高度 plt.bar(x, y1) plt.bar(x, y2) #接下來在條形上下方加上數值 for x0,y0 in zip(x, y1): plt.text(x0, y0, '%.2f' % y0, #保留兩位小數 ha='center', #水平對齊方式 va='bottom' #垂直對齊方式 ) for x0, y0 in zip(x, y2): plt.text(x0, y0, '%.2f' % y0, # 保留兩位小數 ha='center', # 水平對齊方式 va='top' # 垂直對齊方式 ) #到這裏都是第一個ax格子的圖像 plt.subplot(1, 2, 2)#開始在的二個ax畫圖 n = 1024 #生成1024個點 x = np.random.normal(0, 1, n) #正態分佈x座標,在0-1範圍 y = np.random.normal(0, 1, n) #正態分佈y座標,在0-1範圍 color = np.arctan2(y, x) #這個用於渲染好看的顏色,本身琢磨意義,哈哈 plt.scatter(x, #x座標 y, #y座標 s=50, #點的大小 c=color, #顏色 alpha=0.5, #透明度 cmap='magma' #顏色板,看文檔或者源碼有不少類型,本身能夠試試,如summer、winter、pink ) plt.show()
plt.figure()裏面還有不少屬性,好比背景顏色板,x和y軸是否共享座標等等,本身看api和源碼吧。哈哈,今天就到這兒。orm