繁体   English   中英

如何将char设置为x轴上的标签? matplotlib

[英]How to set char as labels on x axis? matplotlib

我有一组字符,例如['a','a','b','b'] 当我以这种方式绘制它们时:

import matplotlib.pyplot as plt 

x_labels = ['a','a','b','b']
y = [0,1,2,3]

plt.plot(x_labels,y)
plt.show()

这是我得到的:

在此处输入图片说明

但是,我想在x轴上: a,a,b,b ,而不仅仅是a,b

我该怎么做?

以下应该为您工作:

import matplotlib.pyplot as plt 
import numpy as np

x_labels = ['a','a','b','b']

# Create dummy x values, with a value for every label entry
x = np.r_[:len(x_labels)]
y = [0,1,2,3]

plt.scatter(x, y, color='r', marker='x')

# Change the xticks as desired
plt.xticks(x, x_labels)
plt.show()

该技巧是将x值设置为占位符整数,然后将其标签更改为所需的值。

这给了我以下情节,我想这就是你想要的:

在此处输入图片说明

您可以使用虚拟整数设置点的位置并根据x_labels数组标记各个刻度

import matplotlib.pyplot as plt 

x_labels = ['a','a','b','b']
y = [0,1,2,3]

plt.plot(range(len(x_labels)),y)
plt.xticks(range(len(x_labels)), x_labels)
plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM