Seaborn:如何在X轴上添加第二层标签

4

我需要绘制一个时间序列图,X轴为日期,Y轴为值,但我还需要在X轴上指定星期几。

ax = sns.lineplot(x='date', y='value', data=df)

我希望能够在X轴上添加星期几(来自df的另一列)。 使用Excel的示例


一个简单的解决方案是生成一个date2列,该列由dateday_of_week组合而成。或者您可以尝试这里的解决方案(https://dev59.com/L1cP5IYBdhLWcg3wtML_#43969357)。 - Quang Hoang
1个回答

3
您可以尝试通过添加第二个x轴来实现。请查看下面的代码,您需要将其适应您的问题。我猜有更好的方法,但这应该可以工作。
from matplotlib.ticker import MultipleLocator
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

x = np.arange(1000)
x2 = np.arange(1000)*2
y = np.sin(x/100.)

fig = plt.figure()

ax = plt.subplot(111)
sns.lineplot(x, y)
plt.xlim(0, 1000)
ax.xaxis.set_major_locator(MultipleLocator(200))

ax2 = ax.twiny()
sns.lineplot(x2, y, visible=False)
plt.xlim(0, 2000)
ax2.xaxis.set_major_locator(MultipleLocator(400))
ax2.spines['top'].set_position(('axes', -0.15))
ax2.spines['top'].set_visible(False)
plt.tick_params(which='both', top=False)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接