如何使用通讯组列表打印类标签

2024-04-26 07:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含训练集和测试集的数据集,以及三个类ABC。我想创建一个绘图,在其中分别显示训练集和测试集的每个类中数据标签的分布(这些是二进制类标签0和1)。理想情况下,我想用不同的颜色显示训练和测试数据,也许是条形图。这些是价值观:

a_train = [40,75]
a_test = [10,19]

b_train=[41,75]
b_test=[10,19]

c_train=[51,75]
c_test=[12,19]

我曾尝试使用pyplot,但对如何创建绘图感到困惑:

import numpy as np                                                               
import matplotlib.pyplot as plt

top=[(['A',[[40,75],[10,19]]]),('B',[[41,75],[10,19]]),('C',[[51,75],[12,19]])]

labels, ys = zip(*top)
xs = np.arange(len(labels)) 
width = 1

plt.bar(xs, ys, width, align='center')

plt.xticks(xs, labels) 
plt.yticks(ys)

这就产生了这个错误:

ValueError: shape mismatch: objects cannot be broadcast to a single shape

Tags: 数据testimport绘图labelstopasnp
1条回答
网友
1楼 · 发布于 2024-04-26 07:26:09
labels = ['a_train', 'a_test', 'b_train', 'b_test','c_train','c_test']
Positive = [40,         10,        41,      10,       51,       12]
Negative = [75,         19,        75,      19,       75,       19]

x = np.arange(len(labels))
width = 0.30  # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, Positive, width, label='Positive')
rects2 = ax.bar(x + width/2, Negative, width, label='Negative')

ax.set_ylabel('Values')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()

plt.show()

结果

Image

相关问题 更多 >