两个指标量级差太大?双轴图完美解决,一图展示趋势+比率,专业感拉满。场景:销量与利润率同图展示。核心:twinx()、柱状+折线、annotate 标注、中文美化。① 生成测试数据
import pandas as pdimport numpy as npdf = pd.DataFrame({ "month": [f"{i}月" for i in range(1,13)], "sales": np.random.randint(500, 2000, 12), "profit": np.random.uniform(0.05, 0.25, 12)})df.to_excel("two_axis.xlsx", index=False)print(" two_axis.xlsx 生成完成")
② 核心代码
import pandas as pdimport matplotlib.pyplot as pltplt.rcParams["font.sans-serif"] = ["SimHei"]plt.rcParams["axes.unicode_minus"] = Falsedf = pd.read_excel("two_axis.xlsx")fig, ax1 = plt.subplots(figsize=(12,5))# 左轴销量ax1.bar(df.month, df.sales, color="#4472C4", alpha=0.7)ax1.set_ylabel("销量")# 右轴利润率ax2 = ax1.twinx()ax2.plot(df.month, df.profit, color="red", marker="o", linewidth=2)ax2.set_ylabel("利润率")# 标注最高销量max_idx = df.sales.idxmax()ax1.text(max_idx, df.sales.max(), "峰值", ha="center")plt.title("销量与利润率双轴分析")plt.tight_layout()plt.show()
结果展示
输出专业双轴图:柱子销量、红线利润率,自动标注峰值。
总结
双轴图是业务分析最实用图表之一,信息密度高、直观易懂、汇报必备。