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

7 python matplotlib

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

Ber*_*nnF 11

我将假设,因为你想在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()
Run Code Online (Sandbox Code Playgroud)

这将导致下面的图表(但可能有一种更好的方法,不需要你摆弄间距,在哪里显示你的y标签). 在此输入图像描述

实际上更多地考虑它 - 我认为类似下面的内容更多是你的想法(我想我现在应该停止,因为它不可避免地表明我使用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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述