Как пометить значения x & y, используя строку и числа одновременно в графике на Python - PullRequest
1 голос
/ 17 июня 2019

Я пытаюсь понять графики с помощью Python.Я хочу понять, что делают "x_values" в следующем коде и как это работает.Я попытался изменить числа, чтобы увидеть, на что это влияет, но я обнаружил ошибку «несоответствие форм», сказав, что «объекты нельзя транслировать в одну форму».

Кроме того, я хочу знать, как я могуиспользуйте квадратные столбцы на графике, назовите каждый из них, но сохраняйте нумерацию по осям.

Помощь муравья приветствуется!

Форма, которую я вывел из кода / графиков: Размещение текстовых значений на оси вместо числовых значений

Спасибо.

Я не уверен, где это не так, поэтому я не знал, что мне следует изменить.

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 else str(y) for y in y_values]
plt.yticks(y_values, new_ticks)
plt.xticks(x_values, text_values)
plt.show()

Я ожидаю, что имена квадратов будут отображаться на оси, а также нумерация на осях XY (показывая квадрат на оси с его именем под ним, и нумерация будет по-прежнему наось)

1 Ответ

1 голос
/ 17 июня 2019

В вашем коде text_values - это список, в котором есть 4 строки.Таким образом, он имеет 4 элемента и длина этого списка равна 4. Это получается с помощью команды len(text_values).Так что теперь следующая команда

np.arange(1, len(text_values) + 1, 1)

становится

np.arange(1, 4 + 1, 1)

, что означает

np.arange(1, 5, 1)

Это будет генерировать последовательные числа, начиная с 1 (первое значение) довторое значение минус 1 (5 - 1 = 4) с шагом 1 (третье значение).Таким образом, вы получите

x_values = [1, 2, 3, 4]

Теперь вы используете эти значения в качестве аргумента x для гистограммы.Таким образом, ваши бары будут расположены на x = 1, x = 2, x = 3, x = 4. Это то, что вы видите на своей фигуре.

...