大熊猫 - 用不同的zorders绘制线条和标记?

时间:2018-06-13 16:49:14

标签: python pandas matplotlib

我正在尝试从pandas数据框中绘制分散的线条和标记,但在某些情况下,线条最终会在标记之上绘制。有没有办法分别设置线条和标记的zorder,以确保标记始终绘制在任何一行的顶部,无论系列如何?例如像marker_zorder=2, line_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')

生成此图表:

Graph with overlapping markers and lines

我们可以看到橙色线在蓝色标记上绘制。

1 个答案:

答案 0 :(得分:1)

不,没有Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range Set rng = Range(Range("D2"), Range("D2").End(xlDown)) If Not Intersect(Target, rng) Is Nothing Then If Target.Count = 1 Then On Error GoTo ErrorHandler If Target = "Yes" Then Sheets(Target.Offset(, -1).Value).Visible = True Else Sheets(Target.Offset(, -1).Value).Visible = False End If End If End If Exit Sub ErrorHandler: MsgBox "The sheet '" & Target.Offset(, -1) & "' does not exist!" End Sub 之类的东西。但是,您可以将数据绘制两次,一次作为一行,一次使用标记。

marker_zorder

enter image description here