環境: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
函數。
- 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()
- 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
說實話,我折騰了半天沒有成功,只有臨時方法成功了。
等下次在嘗試。
待續