Lit*_*les 3 python plot matplotlib pandas
我有一个包含主要和次要蜱的情节。它是一个分组条形图,我不希望图例描述每个类别,而是希望每个类别都显示在小刻度中。然后我希望每个组在主要刻度中都有名称。
我可以在某种程度上做到这一点,但主要刻度似乎覆盖了同一位置的次要刻度。我怎样才能关闭它?
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(
{
0: [84, 41],
1: [0, 0],
2: [18.5, 3.5],
3: [65.5, 124],
4: [0.5, 0]
},
index = ['A', 'B']
)
ax = df.plot.bar(
rot=0,
legend=False,
color=['gray', 'red', 'green', 'lightblue', 'darkblue',],
)
labels = df.unstack().index
label_x, label_mode = [], []
for rect, idx in zip(ax.patches, labels):
print(rect, idx)
label_mode.append(idx[0])
label_x.append(rect.xy[0] + (rect.get_width() * 0.5))
ax.set_xticklabels(['A', 'B'])
ax.set_xticks(label_x, minor=True)
ax.set_xticklabels(label_mode, minor=True)
ax.tick_params(axis='x', which='minor', length=0)
ax.tick_params(axis='x', which='major', length=10, width=0)
Run Code Online (Sandbox Code Playgroud)
这其实很简单。它是remove_overlapping_locs传递给xaxis对象的单个参数。
ax.xaxis.remove_overlapping_locs = False
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅 matplotlib API 更改3.1.0。
| 归档时间: |
|
| 查看次数: |
339 次 |
| 最近记录: |