matplotlib繪制散點圖


matplotlob繪制散點圖

在matplotlib中使用函數 matplotlib.pyplot.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為散點邊緣顏色。
下面為常見的用法:

1、繪制普通散點圖

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

N = 10
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x,y)
plt.show()

輸出:
1

2、更改散點的大小

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 散點隨機大小
size = (30*np.random.rand(N)**2)
plt.scatter(x, y, s=size)
plt.savefig('2.png')
plt.show()

輸出:
2

3、更改散點顏色和透明度


import matplotlib
import matplotlib.pyplot as plt
import numpy as np

N = 10
x = np.random.rand(N)
y = np.random.rand(N)
size = (30*np.random.rand(N)**2)
# 隨機顏色
color = np.random.rand(N)
plt.scatter(x, y, s=size, c= color, alpha=0.3)
plt.savefig('3.png')
plt.show()

輸出:
3

4、更改散點形狀

import matplotlib.pyplot as plt
import numpy as np

N = 10
x = np.random.rand(N)
y = np.random.rand(N)
size = (400*np.random.rand(N)**2)
color = np.random.rand(N)
plt.scatter(x, y, s=size, c=color, marker='^', alpha=0.2)
plt.savefig('4.png')
plt.show()

輸出:
4

所有可用的形狀可以參考matplotlib.markers

5、在一張圖上繪制兩組數據的散點

import matplotlib.pyplot as plt
import numpy as np

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.savefig('5.png')
plt.show()

輸出:
5

6、為散點設置圖例

import matplotlib.pyplot as plt
import numpy as np

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.savefig('6.png')
plt.show()

輸出:
6

7、練習

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager

# 設置全局中文
font = {
    'family': 'KaiTi',
    'weight': 'bold',
    'size': '12'
}
plt.rc('font', **font)

y_3 = [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]
y_10 = [26, 26, 28, 19, 21, 17, 16, 19, 18, 20, 20, 19, 22, 23, 17, 20, 21, 20, 22, 15, 11, 15, 5, 13, 17, 10, 11, 13,
        12, 13, 6]
x_3 = np.arange(1, 32)
x_10 = np.arange(51, 82)
# 設置圖形大小
plt.figure(figsize=(20, 8), dpi=80)
# 使用scatter繪制散點圖
plt.scatter(x_3, y_3, label='3月份')
plt.scatter(x_10, y_10, label='10月份')
# 調整x軸的刻度
_x = list(x_3) + list(x_10)
_xtick_labels = ['3月{}日'.format(i) for i in x_3]
_xtick_labels += ['10月{}日'.format(i - 50) for i in x_10]
plt.xticks(_x[::2], _xtick_labels[::2], rotation=45)
# 添加圖例
plt.legend()
# 添加描述信息
plt.xlabel('時間')
plt.ylabel('溫度')
plt.title('標題')
plt.savefig('7.png')
plt.show()

輸出:
7


免責聲明!

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



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