C語言中文網 目錄

Python Matplotlib scatter函數:繪制散點圖

散點圖和折線圖需要的數組非常相似,區別是折線圖會將各數據點連接起來;而散點圖則只是描繪各數據點,并不會將這些數據點連接起來。

調用 Matplotlib 的 scatter() 函數來繪制散點圖,該函數支持如下常用參數:
  • x:指定 X 軸數據。
  • y:指定 Y 軸數據。
  • s:指定散點的大小。
  • c:指定散點的顏色。
  • alpha:指定散點的透明度。
  • linewidths:指定散點邊框線的寬度。
  • edgecolors:指定散點邊框的顏色。
  • marker:指定散點的圖形樣式。應參數支持'.'(點標記)、','(像素標記)、'o'(圓形標記)、'v'(向下三角形標記)、'^'(向上三角形標記)、'<'(向左三角形標記)、'>'(向右三角形標記)、'1'(向下三叉標記)、'2'(向上三叉標記)、'3'(向左三叉標記)、'4'(向右三叉標記)、's'(正方形標記)、'p'(五地形標記)、'*'(星形標記)、'h'(八邊形標記)、'H'(另一種八邊形標記)、'+'(加號標記)、'x'(x標記)、'D'(菱形標記)、'd'(尖菱形標記)、'|'(豎線標記)、'_'(橫線標記)等值。
  • cmap:指定散點的顏色映射,會使用不同的顏色來區分散點的值。

下面程序示范了如何使用 scatter() 函數來繪制散點圖:
import matplotlib.pyplot as plt
import numpy as np

plt.figure()
# 定義從-pi到pi之間的數據,平均取64個數據點
x_data = np.linspace(-np.pi, np.pi, 64, endpoint=True)  # ①
# 將整個figure分成兩行兩列,第三個參數表示該圖形放在第1個網格
# 沿著正弦曲線繪制散點圖
plt.scatter(x_data, np.sin(x_data), c='purple', # 設置點的顏色
    s=50, # 設置點半徑
    alpha = 0.5, # 設置透明度
    marker='p', # 設置使用五邊形標記
    linewidths=1, # 設置邊框的線寬
    edgecolors=['green', 'yellow']) # 設置邊框的顏色
# 繪制第二個散點圖(只包含一個起點),突出起點
plt.scatter(x_data[0], np.sin(x_data)[0], c='red', # 設置點的顏色
    s=150, # 設置點半徑
    alpha = 1) # 設置透明度
# 繪制第三個散點圖(只包含一個結束點),突出結束點
plt.scatter(x_data[63], np.sin(x_data)[63], c='black', # 設置點的顏色
    s=150, # 設置點半徑
    alpha = 1) # 設置透明度
plt.gca().spines['right'].set_color('none')
plt.gca().spines['top'].set_color('none')
plt.gca().spines['bottom'].set_position(('data', 0))
plt.gca().spines['left'].set_position(('data', 0))
plt.title('正弦曲線的散點圖')
plt.show()
上面程序使用 numpy 中的 linespace() 函數創建了一個列表作為 X 軸數據,程序使用 np.sin() 函數計算一系列 sin 值作為 Y 軸數據。程序中第 9 行代碼負責生成一個散點圖,該散點圖包含 64 個數據點。

此外,程序在第 9 行代碼之后還調用了兩次 scatter() 函數,這意味將會疊加兩個散點圖。后面兩次繪制散點圖的代碼分別用于繪制 x_data、sin(x+data) 的第一個點和最后一個點,這樣即可突出顯示散點圖的起點和結束點。

運行上面程序,可以看到如圖 1 所示的效果。

Matplotlib scatter繪制散點圖
圖 1 Matplotlib scatter繪制散點圖

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo