如何切换徒步爱好者组的Yes与No堆叠区块顺序?
仅切换堆叠条形图指定组的区块顺序解决方案
你的数据透视表结构如下:
Wants_hiking False True Likes_hiking False 63.64 36.36 True 26.97 73.03
要仅切换**徒步爱好者(Hikers,对应Likes_hiking=True行)**的Yes(Wants_hiking=True)和No(Wants_hiking=False)区块顺序,可按以下步骤修改代码:
- 复制原数据框,避免修改原始数据
- 单独反转Hikers行的列值顺序
- 用调整后的数据绘图
完整代码如下:
import matplotlib.pyplot as plt # 复制原数据框,保护原始数据 df_adjusted = df2.copy() # 反转徒步爱好者行的列顺序 df_adjusted.loc[True, :] = df_adjusted.loc[True, :].values[::-1] fig, ax = plt.subplots(figsize=(12, 6)) # 使用调整后的数据绘制水平堆叠条形图 df_adjusted.plot.barh(stacked=True, ax=ax, width=0.5, edgecolor="black") plt.xlabel('Percentage (%)') ax.set_yticklabels(['Non-Hikers','Hikers'], rotation=0) plt.show()
修改后,徒步爱好者组的堆叠顺序会从「No→Yes」变为「Yes→No」,非徒步爱好者组的顺序保持不变。
内容的提问来源于stack exchange,提问作者Sharvari Ghatake
相关产品推荐
相关产品推荐

