你真走运!plot有一个zorderkwarg。在
我在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)
给出:
如果我把它倒过来:
^{pr2}$
编辑:我查看了其中的“条中有条”部分,并且,正如其他地方的评论所指出的,似乎需要根据zorder值的排序手动设置zorder。为了获得视觉效果,您可能需要根据计算的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()