簡體   English   中英

第二個 y 軸時間序列 seaborn

[英]Second y-axis time series seaborn

使用數據框

df = pd.DataFrame({
    "date" : ["2018-01-01", "2018-01-02", "2018-01-03", "2018-01-04"],
    "column1" : [555,525,532,585],
    "column2" : [50,48,49,51]
})

可以用seaborncolumn1sns.tsplot(data=df.column1, color="g")

我們如何在 seaborn 中用兩個 y 軸繪制兩個時間序列?

由於seaborn建立在matplotlib之上,您可以使用它的強大功能:

import matplotlib.pyplot as plt
sns.lineplot(data=df.column1, color="g")
ax2 = plt.twinx()
sns.lineplot(data=df.column2, color="b", ax=ax2)

我建議使用法線圖。 您可以通過ax.twinx()獲得雙軸。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({"date": ["2018-01-01", "2018-01-02", "2018-01-03", "2018-01-04"],
                   "column1": [555,525,532,585], 
                   "column2": [50,48,49,51]})

ax = df.plot(x="date", y="column1", legend=False)
ax2 = ax.twinx()
df.plot(x="date", y="column2", ax=ax2, legend=False, color="r")
ax.figure.legend()
plt.show()

在此處輸入圖片說明

您可以根據@Andrey Sobolev 的解決方案嘗試以下代碼,但這也將生成完整的圖例。

from matplotlib.lines import Line2D

g = sb.lineplot(data=df.column1, color="g")
g = sb.lineplot(data=df.column2, color="b", ax=g.axes.twinx())
g.legend([Line2D([], [], marker='_', color="g"), Line2D([], [], marker='_', color="b")], ['column 1', 'column2'])

輸出

暫無
暫無

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

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