我正在處理在駕駛模擬器中收集的一些資料,我需要根據位置繪制速度。我設法將速度和位置值轉換為 2 個 numpy 陣列。由于模擬器的設定,位置陣列不斷減少。樣本陣列是[5712.114 5711.662 5711.209 ... 3185.806 3185.525 3185.243]。同樣,速度陣列也在減少,因為我們正在測驗制動行為。示例陣列:[27.134 27.134 27.134 ... 16.87 16.872 16.874].
因此,當我繪制這兩個陣列時,我應該看到的應該是一條負斜線,并且 x 和 y 軸的數字都應該遞減。我使用下面的代碼來繪制它們:
plotting_x = np.array(df["SubjectX"].iloc[start_index-2999:end_index 3000])
plotting_y = np.array(df["Velocity"].iloc[start_index-2999:end_index 3000])
plt.plot(plotting_x, plotting_y, "r")
我看到的是附在此處的圖表。有誰知道出了什么問題?Matplotlib 不允許遞減序列嗎?謝謝! Matplotlib 繪圖
uj5u.com熱心網友回復:
問題是默認情況下matplotlib總是定義x軸增加,所以它會按照該規則映射點。嘗試用 dong 反轉它:
ax = plt.gca()
ax.invert_xaxis()
通話后plot。
uj5u.com熱心網友回復:
據我了解,由于位置和速度都在下降,所以情節沒有任何問題,只是第一個點在右上角,最后一個點在左下角。
乍一看,我還想說位置總是在減少(車輛永遠不會向后跳),而速度有一個更有趣的行為。
您可以檢查是否是用兩種顏色分兩步繪制的情況:
plotting_x = np.array(df["SubjectX"].iloc[start_index-2999:end_index])
plotting_y = np.array(df["Velocity"].iloc[start_index-2999:end_index])
plt.plot(plotting_x, plotting_y, "r", label="first")
和
plotting_x = np.array(df["SubjectX"].iloc[start_index:end_index 3000])
plotting_y = np.array(df["Velocity"].iloc[start_index:end_index 3000])
plt.plot(plotting_x, plotting_y, "b", label="second")
然后:
plt.legend()
plt.show()
要獲得更常用的表示,您可以恢復軸或使用:
plotting_x = some_number - np.array(df["SubjectX"].iloc[start_index-2999:end_index 3000])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478256.html
標籤:Python matplotlib
