如何向 pyplot 折线图添加参考线?

Mos*_*man 2 python matplotlib pandas

我有一个数据框,我为其绘制了折线图并使用以下代码添加了参考号

plt.figure(figsize=(15,5))
plt.title('Parento Analysis',fontsize=20, color = 'blue')
plt.xlabel('Product', fontsize=14)
plt.ylabel('Sales Quantity', fontsize=14)
plt.plot(parento['Cum_Product%'], parento['Cum_Sales%'],linewidth=3.0)
plt.plot([10, 10], [0, 80], 'k-', lw=1,dashes=[2, 2])
plt.plot([0, 10], [80, 80], 'k-', lw=1,dashes=[2, 2])
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的解决方案对我来说似乎有点长。有没有其他简单的方法可以绘制 (10,80) 的参考线?

Imp*_*est 5

当然,

plt.plot([10, 10], [0, 80], 'k-', lw=1,dashes=[2, 2])
plt.plot([0, 10], [80, 80], 'k-', lw=1,dashes=[2, 2])
Run Code Online (Sandbox Code Playgroud)

给出相同的

plt.plot([10, 10, 0], [0, 80, 80], 'k-', lw=1,dashes=[2, 2])
Run Code Online (Sandbox Code Playgroud)

仅绘制一条线也更有效 - 尽管在只有 2 个点的情况下这并不重要。

如果您需要更频繁地绘制这些类型的参考线,您当然可以将其放入函数中,

import numpy as np
def refline(x, **kwargs):
    y = np.interp(x, parento['Cum_Product%'], parento['Cum_Sales%'])
    plt.plot([x, x, 0], [0, y, y], **kwargs)
Run Code Online (Sandbox Code Playgroud)

并称之为

refline(10, color="k", lw=1, dashes=[2, 2])
Run Code Online (Sandbox Code Playgroud)