繁体   English   中英

Seaborn Barplot和X轴上的格式化日期

[英]Seaborn Barplot and Formatting Dates on X-Axis

我目前正致力于使用Seaborn和Pandas可视化数据集。 我有一些时间相关的数据,我想在条形图中绘制图表。

但是,我正在与Seaborn中的两个问题作斗争:

  1. 在x轴上格式化日期
  2. 只显示少数日期(因为在6个月的图表中标记每一天没有意义)

我在普通的Matplotlib中找到了解决我的问题的方法,它是:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

dates = 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 pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

dates = 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轴日期?

提前致谢。

不,你不能将seaborn.barplotmatplotlib.dates结合使用。 原因是seaborn条形图的刻度位于整数位置(0,1,...,N-1)。 所以他们不能被解释为日期。

您有两种选择:

  1. 使用seaborn,循环标签并将它们设置为您想要的任何东西
  2. 不使用seaborn并且具有matplotlib.dates代码的优点(和缺点)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM