[英]Seaborn Barplot and Formatting Dates on X-Axis
我目前正致力于使用Seaborn和Pandas可视化数据集。 我有一些时间相关的数据,我想在条形图中绘制图表。
但是,我正在与Seaborn中的两个问题作斗争:
我在普通的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.barplot
与matplotlib.dates
结合使用。 原因是seaborn条形图的刻度位于整数位置(0,1,...,N-1)。 所以他们不能被解释为日期。
您有两种选择:
matplotlib.dates
代码的优点(和缺点)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.