簡體   English   中英

如何在Mathplotlib中plot不同顏色的一組數據label的圖例

[英]How to plot the legend of a set of data with different color label in Mathplotlib

我有一個 1:1 plot,其中點顏色根據條件 (AF) 而不同,它來自同一數據框列。

df是一個數據框,每 1 分鍾有一次數據。 df60是一個數據框,每 1 小時有一次數據。

plt.figure()
colors = {'A':'green', 'B':'aqua', 'C':'blue','D':'black','E':'yellow','F':'red'}

x = df['Method1'].loc['2020-01-01 00:00':'2020-01-15 23:59'].resample('h').mean()
y = df['Method2'].loc['2020-01-01 00:00':'2020-01-15 23:59'].resample('h').mean()

plt.scatter(x, y, c=df60['Method1'].loc['2020-01-01 00:00':'2020-01-15 23:59'].map(colors))
plt.show()

在此處輸入圖像描述

我試過 plot 的圖例顯示這是 AF。 但是,由於數據來自同一列,它並沒有顯示我的期望。 有什么方法可以幫助我正確顯示圖例而不將列分成幾列?

您可以手動定義圖例,例如:

handles=[Line2D([0],[0],label=k,marker="o",markerfacecolor=v,markeredgecolor=v,linestyle="None") for k,v in colors.items()]

plt.legend(handles=handles)

這應該產生: 在此處輸入圖像描述

我希望這有幫助。 不太確定是否有更優雅的解決方案,但......

暫無
暫無

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

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