Python 熊猫-用不同的顺序绘制线条和标记?

Python 熊猫-用不同的顺序绘制线条和标记?,python,pandas,matplotlib,Python,Pandas,Matplotlib,我试图从pandasdataframe中绘制分散的线和标记,但是在某些情况下,线最终绘制在标记的顶部。有没有办法分别设置线条和标记的zorder,以确保标记始终绘制在任何线条的顶部,而不考虑系列?e、 例如marker\u zorder=2,line\u zorder=1 例如,以下代码: import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame({'x': [1, 5, 10],

我试图从
pandas
dataframe中绘制分散的线和标记,但是在某些情况下,线最终绘制在标记的顶部。有没有办法分别设置线条和标记的
zorder
,以确保标记始终绘制在任何线条的顶部,而不考虑系列?e、 例如
marker\u zorder=2,line\u zorder=1

例如,以下代码:

import pandas as pd
import matplotlib.pyplot as plt


df = pd.DataFrame({'x': [1, 5, 10],
                   'y1': [24, 7, 14],
                   'y2': [14, 6, 35]})

fig, ax = plt.subplots(figsize=(3, 5))
df.plot.line(x='x', ls='--', marker='.', ms=15, ax=ax)
ax.set_ylim(bottom=0)
plt.savefig('test.png', bbox_inches='tight')
生成此图形:


在这里我们可以看到橙色的线被画在蓝色的标记上。

不,没有标记这样的东西。但您可以绘制数据两次,一次作为直线,一次在顶部带有标记

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'x': [1, 5, 10],
                   'y1': [24, 7, 14],
                   'y2': [14, 6, 35]})

fig, ax = plt.subplots(figsize=(3, 5))
df.plot.line(x='x', ls='--', ax=ax)

# Reset prop cycle to obtain the same colors for the next plot
ax._get_lines.set_prop_cycle(plt.rcParams["axes.prop_cycle"])
df.plot.line(x='x', ls='', marker='.', ms=15, ax=ax, legend=False)
ax.set_ylim(bottom=0)

plt.show()

一个很好的办法是在将自己强加在markers.Hmm上的线图之上绘制散点图。这确实是个好办法,但这个传说很糟糕。我假设
ax.\u获取线。设置属性周期(plt.rcParams[“axes.prop\u cycle”])
只是为线和标记设置相同的颜色周期?