我有两个具有相同索引的不同数据集,我想在同一张图中将第一组数据表示为条形图,将第二组数据表示为线形图。我当前的方法与以下类似。

ax = pt.a.plot(alpha = .75, kind = 'bar')
ax2 = ax.twinx()
ax2.plot(ax.get_xticks(), pt.b.values, alpha = .75, color = 'r')

结果与此类似

python - 如何在带有不同Y轴的同一海洋图中绘制条形图和线形图?-LMLPHP

此图像非常好,几乎正确。我唯一的问题是ax.twinx()似乎在前一个 Canvas 上创建了一个新 Canvas ,并且白线清晰可见于小节图的顶部。

有没有什么办法可以在不包括白线的情况下进行绘制?

最佳答案

您必须删除第二条轴的网格线。添加到代码ax2.grid(False)。但是,第二个轴的y轴将不与第一个y轴的y轴对齐,如下所示:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(pd.Series(np.random.uniform(0,1,size=10)), color='g')
ax2 = ax1.twinx()
ax2.plot(pd.Series(np.random.uniform(0,17,size=10)), color='r')
ax2.grid(False)
plt.show()

python - 如何在带有不同Y轴的同一海洋图中绘制条形图和线形图?-LMLPHP

10-04 09:58