raise ValueError( ValueError: The number of FixedLocator locations (14), usually from a call to set_ticks, does not match the number of labels (7).
时间: 2024-04-01 10:30:53 浏览: 216
这个错误是因为设置的y轴刻度(ticks)和标签(labels)数量不一致导致的。
在代码中,你使用了以下语句设置y轴刻度:
```python
plt.yticks([i/20 for i in range(14)], ['0.70', '', '0.80', '', '0.90', '', '1.00'])
```
其中,`[i/20 for i in range(14)]`表示y轴刻度,包含14个值。`['0.70', '', '0.80', '', '0.90', '', '1.00']`表示对应的y轴标签,包含7个值。这就导致了上述错误信息:FixedLocator locations的数量为14,而标签的数量只有7。
要解决这个问题,可以将刻度和标签数量保持一致。例如,可以将刻度和标签都设置为7个值,表示0.70、0.75、0.80、0.85、0.90、0.95、1.00这几个值。修改后的代码如下:
```python
import matplotlib.pyplot as plt
# 已知算法类别与识别率,按顺序存储
algorithm_type = ['linear', 'polynomial', 'gaussian', 'sigmoid']
accuracy = [0.75, 0.82, 0.88, 0.70]
# 定义颜色
color_list = ['red', 'blue', 'green', 'purple']
# 绘制柱状图
plt.bar(range(len(algorithm_type)), accuracy, color=color_list)
# 设置标题和轴标签
plt.title('Yala')
plt.xlabel('Kernel Function Type')
plt.ylabel('Accuracy')
# 设置x轴标签和位置
plt.xticks(range(len(algorithm_type)), ['Linear', 'Polynomial', 'Gaussian', 'Sigmoid'])
# 设置y轴起始点和终点
plt.ylim(0.70, 1)
# 设置y轴刻度间隔
plt.yticks([i/20 for i in range(7)], ['0.70', '0.75', '0.80', '0.85', '0.90', '0.95', '1.00'])
# 显示图形
plt.show()
```
这样就可以避免出现刻度和标签数量不一致的错误了。你可以根据需要自由调整y轴的刻度和标签。
阅读全文