我目前正在使用 Seaborn 和 Pandas 可视化数据集。我有一些与时间相关的数据,我想在条形图中绘制图表。但是,我正在与 Seaborn 中的两个问题作斗争:在 x 轴上格式化日期只显示少数日期(因为在 6 个月的图表上标记每一天是没有意义的)我在普通的 Matplotlib 中找到了解决我的问题的方法,即:import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdates = pandas.date_range('1/1/2014', periods=20, freq='m')df = pandas.DataFrame( data={'dt':dates, 'val':numpy.random.randn(N)})fig, ax = plt.subplots(figsize=(10, 6))ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))ax.bar(df['dt'], df['val'], width=25, align='center')但是,我已经在 Seaborn 中完成了大部分图表,我希望保持一致。一旦我将之前的代码转换为 Seaborn,我就无法格式化日期:import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesdates = pandas.date_range('1/1/2014', periods=20, freq='m')df = pandas.DataFrame( data={'dt':dates, 'val':numpy.random.randn(N)})fig, ax = plt.subplots(1,1)ax.xaxis.set_major_formatter(mdates.DateFormatter('%y-%m'))sns.barplot(x='dt', y='val', data=df)fig.autofmt_xdate()当我运行代码时,日期格式保持不变,我无法使用 DateLocator 找到任何日期。有什么方法可以让我在 Seaborn 中以类似于 Matplotlib 和 DateLocator 和 DateFormatter 的方式格式化我的 X 轴日期?提前致谢。
1 回答

翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
不,您不能seaborn.barplot
与matplotlib.dates
打勾结合使用。原因是 seaborn 条形图的刻度位于整数位置 (0,1,..., N-1)。所以它们不能被解释为日期。
你有两个选择:
使用 seaborn,遍历标签并将它们设置为您想要的任何内容
不使用 seaborn 并具有
matplotlib.dates
可用的股票代码的优点(和缺点)。
添加回答
举报
0/150
提交
取消