nan在Y轴的直方图中显示为标签

时间:2018-07-31 13:37:54

标签: python data-visualization data-science

这是python问题。我是python和可视化的新手,并在此之前尝试进行一些研究。但是我找不到正确的答案。

我有一个csv文件,其中第一列为国家/地区名称,其余部分为数字数据。我试图在y轴上绘制国家/地区,在x轴上绘制相应的第一列数据的水平直方图。但是,使用此代码,我得到的是“ nan”而不是国家名称。如何确保yticks正确显示国家名称而不是nan?

Click here for image of the plot diagram

我的代码是这样的:(仅显示前5行)

import numpy as np
import matplotlib.pyplot as plt
my_data = np.genfromtxt('c:\drinks.csv', delimiter=',')
countries = my_data[0:5,0]
y_pos = np.arange(len(countries)`enter code here`)
plt.figure()
plt.barh(y_pos, my_data[0:5:,1])
plt.yticks(y_pos, countries)
plt.show()

Here is the link to the csv file

1 个答案:

答案 0 :(得分:1)

这可行,但是您在y轴上有很多国家。我不知道您是否打算只绘制其中的几个。

with open("drinks.csv") as file:
    lines = file.readlines()
    countries = [line.split(",")[0] for line in lines[0:10]] 
    my_data = [int(line.split(",")[1]) for line in lines[0:10]] 

plt.figure()
y_pos = np.arange(len(countries))
plt.barh(y_pos, my_data)
plt.yticks(y_pos, countries)
plt.show() 

enter image description here