我有两组不同的数据,它们有一个共同的索引,我想在同一个图中将第一组数据表示为条形图,将第二组数据表示为线图。我目前的做法类似于以下内容。
ax = pt.a.plot(alpha = .75, kind = 'bar')
ax2 = ax.twinx()
ax2.plot(ax.get_xticks(), pt.b.values, alpha = .75, color = 'r')
而结果与此类似
这张照片真的很漂亮,而且几乎是正确的。我唯一的问题是ax.twinx()
似乎在前一个画布上创建了一个新画布,在条形图的顶部可以清楚地看到白色。
有没有什么方法可以不包括白色的情况下绘制这个图?
2条答案
按热度按时间ql3eal8s1#
您可以使用
twinx()
方法沿着seaborn一起创建一个单独的y轴,一个用于线图,另一个用于条形图。要控制打印的样式(seaborn的默认样式为darkgrid),可以使用set_style方法并指定首选主题。如果设置style=None
,它将重置为白色背景,不带网格线。你也可以试试whitegrid
。如果您想进一步自定义网格线,可以使用ax2.grid(False)
在轴级别上进行自定义。vnjpjtjt2#
必须删除第二个轴的网格线。添加到代码
ax2.grid(False)
。但是,第二个轴的y刻度不会与第一个y轴的y刻度对齐,如下所示: