如何在 matplotlib 中仅将星期一放在 xticks 上
How to put only Mondays on xticks in matplotlib
我有以下代码:
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.dates import MO, WeekdayLocator
sns.lineplot(x="datum", y="people", data=data_s, hue="expedice")
plt.ylabel("People")
plt.xlabel("Datum")
loc = WeekdayLocator(byweekday=MO, interval=1)
plt.xticks(rotation=90)
plt.legend(loc = 'upper right', bbox_to_anchor=(1.2, 0.5))
plt.show()
这给了我这个输出:
但我只想在每个星期一显示 xticks,因为现在它根本无法辨认。请问我该怎么做?
目前定位器已创建但从未实际应用,而且 x 刻度看起来可能是字符串而不是日期时间,因此:
- 确保日期已转换
to_datetime
- 应用
WeekdayLocator
using set_major_locator
import pandas as pd
from matplotlib.dates import MO, WeekdayLocator
#1 convert to datetime
data_s["datum"] = pd.to_datetime(data_s["datum"])
ax = sns.lineplot(x="datum", y="people", data=data_s, hue="expedice")
#2 apply weekday locator
loc = WeekdayLocator(byweekday=MO, interval=1)
ax.xaxis.set_major_locator(loc)
我有以下代码:
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.dates import MO, WeekdayLocator
sns.lineplot(x="datum", y="people", data=data_s, hue="expedice")
plt.ylabel("People")
plt.xlabel("Datum")
loc = WeekdayLocator(byweekday=MO, interval=1)
plt.xticks(rotation=90)
plt.legend(loc = 'upper right', bbox_to_anchor=(1.2, 0.5))
plt.show()
这给了我这个输出:
但我只想在每个星期一显示 xticks,因为现在它根本无法辨认。请问我该怎么做?
目前定位器已创建但从未实际应用,而且 x 刻度看起来可能是字符串而不是日期时间,因此:
- 确保日期已转换
to_datetime
- 应用
WeekdayLocator
usingset_major_locator
import pandas as pd
from matplotlib.dates import MO, WeekdayLocator
#1 convert to datetime
data_s["datum"] = pd.to_datetime(data_s["datum"])
ax = sns.lineplot(x="datum", y="people", data=data_s, hue="expedice")
#2 apply weekday locator
loc = WeekdayLocator(byweekday=MO, interval=1)
ax.xaxis.set_major_locator(loc)