簡體   English   中英

Matplotlib 散點圖雙 y 軸

[英]Matplotlib scatter plot dual y-axis

我試圖弄清楚如何在 matplotlib 中使用兩個不同的 y 軸值創建散點圖。 現在我有一個,需要在 y 上添加第二個索引列值。

points1 = plt.scatter(r3_load["TimeUTC"], r3_load["r3_load_MW"],
                     c=r3_load["r3_load_MW"], s=50, cmap="rainbow", alpha=1) #set style options
plt.rcParams['figure.figsize'] = [20,10]
#plt.colorbar(points)

plt.title("timeUTC vs Load")
#plt.xlim(0, 400)
#plt.ylim(0, 300)
plt.xlabel('timeUTC')
plt.ylabel('Load_MW')
cbar = plt.colorbar(points1)
cbar.set_label('Load')

在此處輸入圖像描述

我期望的結果是這樣的: 在此處輸入圖像描述

所以第二個散點集應該是 TimeUTC vs index。 顏色不是主題;)在excel中y軸也是不同的站點,但沒關系。

感謝您的幫助! 謝謝,寶琳娜

在評論中的建議之后繼續。

兩種使用matplotlib的方法

  • 通過matplotlib.pyplot接口,就像您在原始代碼片段中使用.plt所做的那樣
  • 面向對象的方式。 這是使用matplotlib的建議方法,尤其是當您需要更多自定義時,例如您的情況。 在您的代碼中, ax1是一個Axes實例

Axes實例中,您可以使用Axes.plotAxes.scatter方法繪制數據,這與您通過pyplot界面所做的非常相似。 這意味着,您可以編寫Axes.scatter調用而不是.plot並使用與原始代碼中相同的參數:

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

ax1.scatter(r3_load["TimeUTC"], r3_load["r3_load_MW"],
                     c=r3_load["r3_load_MW"], s=50, cmap="rainbow", alpha=1)
ax2.plot(r3_dda249["TimeUTC"], r3_dda249.index, c='b', linestyle='-')

ax1.set_xlabel('TimeUTC')
ax1.set_ylabel('r3_load_MW', color='g')
ax2.set_ylabel('index', color='b')

plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM