我正在尝试使用以下代码在python中绘制条形图:
prop_all = p_dead_men, p_men_first ,p_men_second ,p_men_third, p_dead_women, p_dead_child
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
width = 0.8
index = len(prop_all)
x = [u'Men', u'M-Ist', u'M-IInd', u'M-IIIrd', u'W', u'CH']
ind = np.arange(len(prop_all))
fig, ax = plt.subplots()
plt.title("Proportion of dead passengers by category")
plt.bar(ind, prop_all, width, color="blue")
ax.set_xticklabels(x)
plt.show()
我得到的输出完全缺少第一个x值,因此直方图图例只显示最后一个5.任何建议?
答案 0 :(得分:1)
是的,在 set_xticklabels(x)之前添加此代码:
ax.set_xticks(ind)
或者添加一个额外的空标签:
ax.set_xticklabels([""]+x)
原因是你的斧头有一个负xtick。它似乎是barplot创造的东西。在这里看一下这个变量:
ax.get_xticks()
返回:
array([-1., 0., 1., 2., 3., 4., 5., 6.])