matplotlib之散點圖


環境:windows系統,anaconda3 64位,python 3.6

1.初認識

基本代碼如下:

import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x, y)
plt.show()

這里使用numpy包的random函數隨機生成1000組數據,然后通過scatter函數繪制了散點圖。

隨機散點圖

這篇文章的重點其實在於scatter函數。
scatter

  • x,y 形如shape(n,)的數組,可選值,
  • s 點的大小(也就是面積)默認20
  • c 點的顏色或顏色序列,默認藍色。其它如c = 'r' (red); c = 'g' (green); c = 'k' (black) ; c = 'y'(yellow)
  • marker 形狀,可選值,默認是圓
    基本
    如果需要其他的,可搜索matplotlib的官網,在官網中搜索markers,選擇第一個結果。
import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
color = ['r','y','k','g','m']
plt.scatter(x, y,c=color,marker='>')
plt.show()

示例

  • alpha:標量,可選,默認值:無, 0(透明)和1(不透明)之間的alpha混合值
import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x, y,alpha=0.5)
plt.show()

示例alpha = 0.5

  • edgecolors,顧名思義,邊緣顏色或顏色序列,可選值,默認值:None
import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x, y,alpha=0.5,edgecolors= 'white') #edgecolors = 'w',亦可
plt.show()

與上圖對比

2.圖例無法顯示中文

import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x, y,alpha=0.5,edgecolors= 'white')
plt.title('示例')#顯示圖表標題
plt.xlabel('x軸')#x軸名稱
plt.ylabel('y軸')#y軸名稱
plt.grid(True)#顯示網格線
plt.show()

中文無法顯示

查找原因,發現時因為matplotlib庫沒有中文字體。

解決方案1

每次編代碼時都進行參數設置如下:

#coding:utf-8
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
#有中文出現的情況,需要u'內容'

解決方案2

一勞永逸
知乎

說實話,我折騰了半天沒有成功,只有臨時方法成功了。
等下次在嘗試。

待續


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM