Ошибка значения: нераспознанный символ a в строке формата

#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), если это вызываемый объект, такой как словарь