在轴上放置文本值而不是数值

2024-04-25 21:01:56 发布

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

我在Python3.2中创建了一个简单的单词频率计算器。现在我想创建一个图来可视化结果。x轴将包含频率结果,我想将最常用的单词添加到y轴。如何向pylab轴添加文本而不是数字?提前谢谢!


Tags: 文本可视化数字单词计算器频率pylab
1条回答
网友
1楼 · 发布于 2024-04-25 21:01:56

我假设,因为你想显示 x轴而不是y轴,表示需要水平条形图。

调整标签以在x轴上打印,而不是简单地要求您 使用xticks命令:

import matplotlib.pyplot as plt
import numpy as np
x_values = [0.1, 0.3, 0.4, 0.2]
y_values = ["word 1", "word 2", "word 3", "word 4"]
y_axis = np.arange(1, 5, 1)

plt.barh(y_axis, x_values, align='center')
plt.yticks(y_axis, y_values)
plt.show()

这将产生下表(但可能有更好的方法 这将不需要你在显示y标签的地方修改间距)。 enter image description here

实际上想得更多一些-我认为下面的内容更符合您的想法(我想我现在应该停止了,因为这不可避免地表明我没有使用matplotlib的经验):

import matplotlib.pyplot as plt
import numpy as np
y_values = [0.1, 0.3, 0.4, 0.2]
text_values = ["word 1", "word 2", "word 3", "word 4"]
x_values = np.arange(1, len(text_values) + 1, 1)

plt.bar(x_values, y_values, align='center')
# Decide which ticks to replace.
new_ticks = ["word for " + str(y) if y != 0.3 else str(y) for y in y_values]
plt.yticks(y_values, new_ticks)
plt.xticks(x_values, text_values)
plt.show()

enter image description here

相关问题 更多 >