我目前正在使用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找到任何日期。
我是否可以通过类似于Matplotlib和DateLocator和DateFormatter的方式格式化Seaborn中X轴的日期?
谢谢。
答案 0 :(得分:0)
否,您不能将seaborn.barplot
与matplotlib.dates
勾号一起使用。原因是海底条形图的刻度线位于整数位置(0,1,...,N-1)。因此它们不能解释为日期。
您有两个选择:
matplotlib.dates
行情自动收录器的优点(和缺点)。