利用 matplotlib 製作散點圖:
使用scatter繪製散點圖
matplotlib.pyplot.scatter的函數參數如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
常用參數有:x,y組成了散點的座標;s爲散點的面積;c爲散點的顏色(默認爲藍色’b’);marker爲散點的標記;alpha爲散點的透明度(0與1之間的數,0爲完全透明,1爲完全不透明);linewidths爲散點邊緣的線寬;如果marker爲None,則使用verts的值構建散點標記;edgecolors爲散點邊緣顏色
例題:計算3月份每天最高氣溫
from matplotlib import pyplot as plt
from matplotlib import font_manager
import numpy as np
y=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
x=range(1,32)
#設置圖形大小
plt.figure(figsize=(20,8),dpi=80)
#使用scatter繪製散點圖
#設置大小
size=np.random.randint(0,100,31)
plt.scatter(x,y,label='3月份',alpha=0.5,s=size,c='red')
my_font=font_manager.FontProperties(fname='F:/大數據分析全棧工程師/2020-02-12/HYTianZhenTi.ttf',size=10)
#調整x軸的刻度
xticks_labels=['3月{}日'.format(i) for i in x]
plt.xticks(x[::3],xticks_labels[::3],fontproperties=my_font,rotation=45)
#調整y軸的刻度
yticks_label=['{}°C'.format(i) for i in range(min(y),max(y)+1)]
plt.yticks(range(min(y),max(y)+1),yticks_label)
plt.xlabel('日期',fontproperties=my_font)
plt.ylabel('溫度',fontproperties=my_font)
#圖例
plt.legend(prop=my_font)
plt.show()
# plt.savefig('F:/sandiantu.svg')
1、繪製普通散點圖
import matplotlib.pyplot as plt
import numpy as np
# 10個點
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)
plt.show()
2、更改散點的大小
import matplotlib.pyplot as plt
import numpy as np
# 10個點
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 每個點隨機大小
s = (30*np.random.rand(N))**2
plt.scatter(x, y, s=s)
plt.show()
3、更改散點顏色和透明度
import matplotlib.pyplot as plt
import numpy as np
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 每個點隨機大小
s = (30*np.random.rand(N))**2
# 隨機顏色
c = np.random.rand(N)
plt.scatter(x, y, s=s, c=c, alpha=0.5)
plt.show()
4、更改散點形狀
import matplotlib.pyplot as plt
import numpy as np
# 10個點
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
s = (30*np.random.rand(N))**2
c = np.random.rand(N)
plt.scatter(x, y, s=s, c=c, marker='^', alpha=0.5)
plt.show()
5、在一張圖上繪製兩組數據的散點
import matplotlib.pyplot as plt
import numpy as np
# 10個點
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o')
plt.scatter(x2, y2, marker='^')
plt.show()
6、爲散點設置圖例
import matplotlib.pyplot as plt
import numpy as np
# 10個點
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o', label="circle")
plt.scatter(x2, y2, marker='^', label="triangle")
plt.legend(loc='best')
plt.show()