получить ошибку при построении с помощью matplotlib - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь построить график, используя matplotlib с python 3.7.

Это мой код:

import matplotlib
fig = matplotlib.pyplot.figure()
rect = fig.patch
rect.set_facecolor("green")
x = [3, 7, 8, 12]
y = [5, 13, 2, 8]
graph1 = fig.add_subplot(1, 1, axisbg="black")
graph1.plot(x, y, "red", linewidth=4.0)
matplotlib.pyplot.show()   

Но я продолжаю получать эту ошибку:

File "C:\Users\User\Anaconda3\lib\site-packages\matplotlib\axes\_subplots.py", line 72, in __init__
  raise ValueError('Illegal argument(s) to subplot: %s' % (args,))

ValueError: Illegal argument(s) to subplot: (1, 1)

В чем проблема?

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Проблема в том, что add_subplot имеет три обязательных аргумента, а не два. Аргументы: M = «количество строк», N = «количество столбцов» и P = «выбор элемента». Последний (P) - это линейный индекс в сетке MxN, проходящий через.

Кроме того, аргументы axis_bg и axis_bgcolor устарели в matplotlib 2.0.0 и удалены в matplotlib 2.2.0. Вместо этого используйте facecolor или fc для краткости.

Вы, вероятно, хотели сделать

graph1 = fig.add_subplot(1, 1, 1, fc="black")

Тем не менее, если вы хотите создать один набор осей на фигуре, я, как правило, обнаружил, что проще использовать plt.subplots для создания фигуры и осей за один снимок:

fig, graph1 = plt.subplots(subplot_kw={'facecolor': 'black'}, facecolor='green')

Для удобства чаще всего импортируют pyplot как plt, либо с

import matplotlib.pyplot as plt

или с

from matplotlib import pyplot as plt

Все вместе, ваш код может выглядеть так:

from matplotlib import pyplot as plt

fig, graph1 = plt.subplots(subplot_kw={'facecolor': 'black'},
                           facecolor='green')

x = [3, 7, 8, 12]
y = [5, 13, 2, 8]
graph1.plot(x, y, "red", linewidth=4.0)
plt.show()   
0 голосов
/ 24 августа 2018

из matplotlib docs :

add_subplot (* args, ** kwargs) [источник]

Добавить участок.

Звонки подписи:

add_subplot (nrows, ncols, index, ** kwargs)

add_subplot (pos, ** kwargs)

Насколько я могу судить, вы не предоставляете аргумент index для функции.

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