在python中的条形图

时间:2017-10-15 05:23:11

标签: python numpy matplotlib

我正在尝试使用以下代码在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.任何建议?

1 个答案:

答案 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.])