#python #dictionary #matplotlib #plot #valueerror
#python #словарь #matplotlib #сюжет #ошибка значения
Вопрос:
У меня есть этот набор данных, который выдает странную ошибку, когда я пытаюсь вызвать его значения. Не уверен, где я ошибаюсь. где data1 — это словарь, он выдает следующую ошибку:
~anaconda3libsite-packagesmatplotlibaxes_base.py in _plot_args(self, tup, kwargs)
310 def _plot_args(self, tup, kwargs):
311 if len(tup) > 1 and isinstance(tup[-1], str):
--> 312 linestyle, marker, color = _process_plot_format(tup[-1])
313 tup = tup[:-1]
314 elif len(tup) == 3:
~anaconda3libsite-packagesmatplotlibaxes_base.py in _process_plot_format(fmt)
102 i = 2
103 else:
--> 104 raise ValueError(
105 'Unrecognized character %c in format string' % c)
106
ValueError: Unrecognized character a in format string
Я извлек тип как словаря, так и обоих наборов значений. Словарь — это dict, а наборы значений для обоих — это списки.
Однако, когда я строю его следующим образом, это работает:
plt.figure()
x= data1['date']
y = data1['value']
plt.plot(x,y)
Что может пойти не так?
Ответ №1:
from matplotlib import pyplot as plt
d = { "name" : ["Joe", "Maria", "Anna", "Bob"], "gender" : ["Male", "Female", "Female", "Male"], "salary" :[10000,20000,24000,14000]}
plt.plot("name", "salary", data=d)
plt.show()
Вы должны передать параметр object, чтобы он мог понять, что вам нужны метки от объекта. в вашем случае он обрабатывает "date", "value"
как итерации. потому string
что есть a iterble
, и он пытается установить галочки «d», «a», «t», «e».
Ответ №2:
Вместо этого вы должны передавать переменные:
plt.plot(date,value,data1)
Комментарии:
1. Когда я пытаюсь это сделать, я получаю ошибку NameError: имя «дата» не определено. В соответствии с этой документацией: matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.plot.html Я должен быть в состоянии сделать это как plt.plot(‘date’,’value’,data1), если это вызываемый объект, такой как словарь