Matplotlib ValueError: Значение истинности массива с более чем одним элементом неоднозначно.Используйте a.any () или a.all () - PullRequest
0 голосов
/ 28 сентября 2019

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

x = np.array([0,1,2,3])
y = np.array([0.650, 0.660, 0.675, 0.685])
customized_x = np.array([3, 4, 5, 6])
plt.xticks(x, customized_x)
plt.xlim(2, 3)
plt.plot(x, y)
plt.show()

Однако, потому что я хочусделать еще несколько графиков вместе, когда я использую субплот вместо этого, он выскакивает в строке ax1.set_xticks(x, customized_x):

fig = plt.figure(figsize=[6.0, 9.0])
ax1 = fig.add_subplot(111)

x = np.array([0,1,2,3])
y = np.array([0.650, 0.660, 0.675, 0.685])
customized_x = np.array([3, 4, 5, 6])
ax1.set_xticks(x, customized_x)
ax1.set_xlim(2, 3)
ax1.plot(x, y)
plt.show()

Получена ошибка:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

Хотя я могу избежать этой проблемыне используя подзаговоры, мне все еще интересно, что не так с подзаговорами?

РЕДАКТИРОВАТЬ

Я нашел решение аналогичного вопроса здесь .Извините за повторение.

1 Ответ

0 голосов
/ 28 сентября 2019

Вы, похоже, ошибочно используете set_xticks.Из matplotlib документации:

Axes.set_xticks (self, ticks, minor = False) ¶

Это связано с тем, что Axes.set_xticks имеет разные аргументы по сравнению с plt.xticks.Код пытается оценить customized_x как параметр minor.

Я думаю, что вам нужно Axes.set_xticklabels: см. документацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...