此刻我正拼命解决以下任务:
给出具有以下内容的“ test.csv”
name1;0.01923037196457715
name2;-0.5563708550161747
name3;-0.0021840865080922593
...
因此,您每行都有一个名称和相应的浮点值。 我想绘制一个水平条形图,其名称在y轴上,相应的值在x轴上。 它必须按值降序排序。 另外,我想将每个负值转换为正数,并在对应名称后放置“(-)”字符串,并在对应名称后放置正值的“(+)”字符串。
到目前为止,我已经尝试了以下方法:
features = []
pcc = []
with open('test.csv') as csv_file:
csv_reader = csv.reader(csv_file,delimiter=';')
for row in csv_reader:
features.append(row[0])
pcc.append(row[1])
"""
row = 0
for f,c in zip(features,pcc):
if c < 0:
features[row] = f + "(-)"
pcc[row] = c * -1
row += 1
else:
features[row] = f + "(+)"
row += 1
"""
indices = np.argsort(pcc)
plt.title('Correlation Coefficients per Feature')
plt.barh(range(len(indices)),pcc[indices],color='b',align='center')
plt.yticks(range(len(indices)),[features[i] for i in indices])
plt.xlabel('Correlation Coefficient')
plt.show()
plt.savefig('correlation_ranking.png')
我一时陷入的错误如下:
plt.barh((len(indices)),align='center')
TypeError: only integer scalar arrays can be converted to a scalar index
您能帮我实现吗?我对Python不熟悉。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。