Second y-axis time series seaborn

2019-04-21 01:01发布

Using the data frame 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]}) one can plot with seaborn say column1 with sns.tsplot(data=df.column1, color="g"). How can we plot both time series with two y-axis in seaborn ?

2条回答
贼婆χ
2楼-- · 2019-04-21 01:06

As seaborn is built on the top of matplotlib, you can use its power:

import matplotlib.pyplot as plt
sns.lineplot(data=df.column1, color="g")
ax2 = plt.twinx()
sns.lineplot(data=df.column2, color="b", ax=ax2)
查看更多
对你真心纯属浪费
3楼-- · 2019-04-21 01:16

I would recommend using a normal line plot. You can get a twin axes via 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()

enter image description here

查看更多
登录 后发表回答