Вам повезло! У plot
есть zorder
кварг.
Я проверил это на bar
просто для уверенности, используя пример, который у меня есть.
summer = ax.bar(index, df["Crime Type Summer"].value_counts(), bar_width,
label="Summer", zorder=2)
winter = ax.bar(index, df["Crime Type Winter"].value_counts(),
bar_width, label="Winter", zorder=1)
Дает:
![введите здесь описание изображения](https://i.stack.imgur.com/btxiY.png)
И если я переверну это:
summer = ax.bar(index, df["Crime Type Summer"].value_counts(), bar_width,
label="Summer", zorder=1)
winter = ax.bar(index, df["Crime Type Winter"].value_counts(),
bar_width, label="Winter", zorder=2)
![введите здесь описание изображения](https://i.stack.imgur.com/l9tOU.png)
Редактировать: я просмотрел часть «полоса внутри полосы», и, как отмечалось в комментариях в другом месте, кажется, вам нужно будет вручную установить zorders на основе сортировки их значений. Вы, вероятно, захотите изменить ширину полосы на основе этого рассчитанного zorder, чтобы получить этот визуальный эффект.
Полный код, который я использую в качестве справочного примера, приведен ниже для ясности:
import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
s = "Crime Type Summer|Crime Type Winter".split("|")
j = {x: [random.choice(["ASB", "Violence", "Theft", "Public Order", "Drugs"]) for j in range(300)] for x in s}
df = pd.DataFrame(j)
index = np.arange(5)
bar_width = 0.35
fig, ax = plt.subplots()
summer = ax.bar(index, df["Crime Type Summer"].value_counts(), bar_width,
label="Summer", zorder=1)
winter = ax.bar(index, df["Crime Type Winter"].value_counts(),
bar_width, label="Winter", zorder=2)
ax.set_xlabel('Category')
ax.set_ylabel('Incidence')
ax.set_title('Crime incidence by season, type')
ax.set_xticks(index)
ax.set_xticklabels(["ASB", "Violence", "Theft", "Public Order", "Drugs"])
ax.legend()
plt.show()
person
Charles Landau
schedule
12.11.2018
bar()
с разными zorders для одного из классов. - person cheersmate   schedule 12.11.2018