![](/img/trans.png)
[英]Python: seaborn pointplot and boxplot in one plot but shifted on the x-axis
[英]Is it possible to add x-axis labels to *every* plot in the Seaborn Factor Plot (Python)?
我正在使用 Seaborn 制作因子图。
总共,我有 4 个“子图”(并使用col_wrap =2
,所以我有 2 行,每行包含 2 个子图)。 只有网格最底部的 2 个子图具有 x 轴标签(我认为这是默认值)。
是否可以配置因子图,使 4 个图都具有 x 轴标签? (我在文档或 StackOverflow 上找不到这个选项)
更新:
这是代码(在因子网格上生成 4 个时间序列图):
数据框 (df) 如下所示:
Company Date Value
ABC 08/21/16 500
ABC 08/22/16 600
ABC 08/23/16 650
DEF 08/21/16 625
DEF 08/22/16 675
DEF 08/23/16 680
GHI 08/21/16 500
GHI 08/22/16 600
GHI 08/23/16 650
JKL 08/21/16 625
JKL 08/22/16 675
JKL 08/23/16 680
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
df = pd.read_csv(the_file_name.csv)
g = sns.factorplot(data=df,
x='Date',
y='Value',
col='Company',
col_wrap=2,
sharey=False)
g.set_xlabels('')
g.set_ylabels('product count')
g.set_xticklabels(rotation=45)
plt.show()
您会注意到 x 轴日期显示在底部 2 个图上。 我希望 x 轴日期也显示在前 2 个图上。
谢谢!
我不确定在seaborn
执行此操作的seaborn
,但是您可以使用 matplotlib Axes
实例来执行此操作。
例如,在这里我们将使用setp
设置xticklabels
可见在所有轴FacetGrid
( g
)。 请注意,我也在此处设置了旋转,因为 seaborn 不会旋转上排的ticklabels
。
最后,我增加了子图之间的空间,以便使用subplots_adjust
为刻度标签subplots_adjust
。
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from io import StringIO
the_file_name = StringIO(u"""
Company,Date,Value
ABC,08/21/16,500
ABC,08/22/16,600
ABC,08/23/16,650
DEF,08/21/16,625
DEF,08/22/16,675
DEF,08/23/16,680
GHI,08/21/16,500
GHI,08/22/16,600
GHI,08/23/16,650
JKL,08/21/16,625
JKL,08/22/16,675
JKL,08/23/16,680
""")
df = pd.read_csv(the_file_name)
g = sns.factorplot(data=df,
x='Date',
y='Value',
col='Company',
col_wrap=2,
sharey=False)
g.set_xlabels('')
g.set_ylabels('product count')
for ax in g.axes:
plt.setp(ax.get_xticklabels(), visible=True, rotation=45)
plt.subplots_adjust(hspace=0.3)
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.