如何在Pandas多线图中仅为单条折线添加标记?
解决Pandas绘图仅单条折线加标记的问题
你可以用两种方式实现只给Xbar折线添加标记:
方法一:分两次绘图,单独控制单条线
先绘制不带标记的三条控制线,再在同一画布上绘制带标记的Xbar线:
import matplotlib.pyplot as plt # 先画CL、UCL、LCL,无标记 df.plot(x="Time", y=["CL", "UCL", "LCL"], kind="line", color=["k", "r", "r"]) # 再画Xbar,添加标记,指定ax=plt.gca()确保在同一张图 df.plot(x="Time", y="Xbar", kind="line", color="b", marker="o", ax=plt.gca()) plt.show()
方法二:绘制后修改指定线条属性
一次性绘制所有线后,通过Axes对象获取线条列表,修改对应线条的标记:
import matplotlib.pyplot as plt # 绘制所有折线 ax = df.plot(x="Time", y=["Xbar", "CL", "UCL", "LCL"], kind="line", color=["b", "k", "r", "r"]) # 获取图中所有折线,索引0对应Xbar lines = ax.get_lines() # 给Xbar设置标记 lines[0].set_marker("o") plt.show()
两种方法都能实现需求:方法一拆分绘图步骤,逻辑更直观;方法二无需拆分,适合在原有代码基础上快速修改。
内容的提问来源于stack exchange,提问作者Gracie
相关产品推荐
相关产品推荐

