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

时间:2019-04-16 13:40:39

标签: python 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()

这就是我得到的:

enter image description here

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

我该怎么做?

2 个答案:

答案 0 :(得分:2)

以下应为您工作:

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值设置为占位符整数,然后将其标签更改为您想要的任何内容。

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

enter image description here

答案 1 :(得分:2)

您可以使用虚拟整数设置点的位置,并根据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()

enter image description here