我正在尝试绘制数据(见下文)。x轴上有company_name,y轴上有status_mission_2_y,另一个y轴上有percentage。我试过使用twinx()函数,但我不能让它工作。
def twinplot(data):
x_ = data.columns[0]
y_ = data.columns[1]
y_2 = data.columns[2]
data1 = data[[x_, y_]]
data2 = data[[x_, y_2]]
plt.figure(figsize=(15, 8))
ax = sns.barplot(x=x_, y=y_, data=data1)
ax2 = ax.twinx()
g2 = sns.barplot(x=x_, y=y_2, data=data2, ax=ax2)
plt.show()
data = ten_company_missions_failed
twinplot(data)
| 公司名称|百分比|status_mission_2_y|
| --|--|--|
| EER| 1 | 1 |
| 戈特| 1 | 1 |
| TRV| 1 | 1 |
| 桑迪亚| 1 | 1 |
| 测试| 1 | 1 |
| 美国海军|0.823529412| 17 |
| Zed| 0.8| 5 |
| Gov| 0.75| 4 |
| 骑士|0.66666667| 3 |
| 有|0.66666667| 3 |
1条答案
按热度按时间7tofc5zh1#
Seaborn用相同的颜色和相同的x位置绘制两个条形图。
下面的示例代码调整了条形图的宽度,将
ax
的条形图向左移动。将ax2
的条形图向右移动。为了区分右侧的条形图,使用了半透明(alpha=0.7
)和阴影。一个更简单的替代方案是将
barplot
和ax
结合起来,将lineplot
和ax2
结合起来。