Python 显示matplotlib线图中的所有线

Python 显示matplotlib线图中的所有线,python,matplotlib,Python,Matplotlib,如何将另一条线放在前面,或将两个图形显示在一起 plot_yield_df.plot(figsize=(20,20)) 如果打印数据重叠,则查看两个数据的一种方法是增加线宽和处理透明度,如图所示: plt.plot(np.arange(5), [5, 8, 6, 9, 4], label='Original', linewidth=5, alpha=0.5) plt.plot(np.arange(5), [5, 8, 6, 9, 4], label='Predicted') plt.legen

如何将另一条线放在前面,或将两个图形显示在一起

plot_yield_df.plot(figsize=(20,20))

如果打印数据重叠,则查看两个数据的一种方法是增加线宽和处理透明度,如图所示:

plt.plot(np.arange(5), [5, 8, 6, 9, 4], label='Original', linewidth=5, alpha=0.5)
plt.plot(np.arange(5), [5, 8, 6, 9, 4], label='Predicted')
plt.legend()
子绘图是另一种好方法

问题 线按其列在数据框中的显示顺序打印。比如说

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

a = np.random.rand(400)*0.9
b = np.random.rand(400)+1
a = np.c_[a,-a].flatten()
b = np.c_[b,-b].flatten()
df = pd.DataFrame({"A" : a, "B" : b})

df.plot()

plt.show()
这里B的值对A隐藏了这些值

解决方案1:颠倒列顺序 一个解决办法是颠倒顺序

df[df.columns[::-1]].plot()
这也改变了图例和颜色编码的顺序

解决方案2:反向z顺序 因此,如果不希望这样,您可以使用zorder

ax = df.plot()

lines = ax.get_lines()
for line, j in zip(lines, list(range(len(lines)))[::-1]):
    line.set_zorder(j)

您可以使用plt.subplot指定要打印到的两个不同轴,zorder参数也可以用于确定哪个打印在前面。我也会考虑移动平均值来去除一些噪音。我猜它们都在那里——一个与另一个重叠。可能预测的产量比例不正确。