我有一个数据集,x是一个元组整数:
【一、二、三、四、五、六、七、八、九、十、四十】
y是一个字符串元组
“5”、“2”、“5”、"2"、"5“、" 2”、"5“、”2"、"5"、“2 "、" 5”、"2"、"4"、"2"、"4"、"2“、”5“、”1“、”5"、"2“、”5“、" 2”、“1”、"3“、”5“、”0“、”5“、”3“,'5'、' 3'、'5'、' 3'、'5'、' 3'、'5'、' 3'、'4'、'0']。
y轴数据需要转换为分类数据('5'->W,'4'->R,'3'-'N1','2'-'N2','1'-'N1')。零不需要标签。我选择按原样绘制它们,只需更改y轴上的标签:
import matplotlib.ticker as ticker
conv_tup=np.array(x)
fig, ax = plt.subplots()
ax.scatter(conv_tup/2,y)
y_labels={1:'W',2:'N1',3:'N2',4:'N3',5:'R'}
plt.yticks(list(y_labels.keys()), y_labels.values())
plt.show()
然而,我想改变数据在y轴上显示的顺序(不仅仅是重新标记它们),并具有这种顺序(从上到下的y轴):W,R,N1,N2,N3,并将它们绘制为散点图,但也可以绘制为线图。谢谢。
1条答案
按热度按时间dz6r00yl1#
IIUC,首先将
y
数据转换为数字,这应该以正确的顺序绘制点,并在最后更改yticklabels:输出量:
交换
1
和3
:输出量: