簡體   English   中英

傳奇人物頭銜位置

[英]seaborn legend title position

我想繪制一個帶有seaborn的圖形,但是,我的圖形的圖例標題名稱始終與其他圖例名稱位於同一行,例如:

在此處輸入圖片說明

我使用的代碼是這樣的:

test = pd.read_csv('test.csv')
ax = sns.lineplot(x='hour',y='travel_time',hue='Name',data=test)
ax.legend(shadow=True, fancybox=True, ncol = 2, fontsize = 14)

可以通過以下方式獲得數據:

https://knightsucfedu39751-my.sharepoint.com/:x:/g/personal/peili_knights_ucf_edu/ES8Y98bYZndNulxVKSsaHRgB67TYkAvg4uLwWszDiJvAzQ?e=oumJpK

我想將圖例標題放在圖例區域的中心,有人知道如何解決此問題嗎? 謝謝!

當然,您可以通過刪除假標題條目並添加真實標題來調整圖例。 最后,這比僅使用matplotlib繪制線路圖更麻煩,因為這免費提供了居中的標題。

這將需要多一行代碼,並且可能看起來像

for n, grp in df.groupby("hue"):
    plt.plot("xData", "yData", data=grp, label=n)
plt.legend(shadow=True, fancybox=True, ncol = 2, title="Name")

為了完整起見,一個可運行的示例:

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

df = pd.DataFrame({"xData" : np.sort(np.cumsum(np.random.randn(10,10), axis=1), axis=1).flatten(),
                   "yData" : np.cumsum(np.random.randn(10,10), axis=1).flatten(),
                   "hue" : np.array([[f"Label {i+1}"]*10 for i in range(10)]).flatten()})

for n, grp in df.groupby("hue"):
    plt.plot("xData", "yData", data=grp, label=n)
plt.legend(shadow=True, fancybox=True, ncol = 2, title="Name")

plt.show()

導致

在此處輸入圖片說明

暫無
暫無

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

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