機器學習-數據可視化神器matplotlib學習之路(三)

以前學習了一些通用的畫圖方法和技巧,此次就學一下其它各類不一樣類型的圖。好了先從散點圖開始,上代碼: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

相關文章
相關標籤/搜索