Поле отображает данные из ключа словарей в python

#python #python-3.x #numpy #dictionary #boxplot

#python #python-3.x #numpy #словарь #boxplot

Вопрос:

У меня есть два словаря, оба словаря содержат несколько ключей. Что я пытаюсь здесь сделать. Я хочу отобразить их данные рядом. Например, оба словаря имеют ключ ‘1’, поэтому я хочу отобразить данные ключа 1 из обоих словарей рядом.

 dict_a = {1: [10.60626299560636,9.808507783184758, 9.80184985166152, 9.820483229791137,9.822087257017674],
2: [10.60626299560636, 9.808507783184758, 9.80184985166152, 9.820483229791137, 9.822087257017674]}  

dict_b = {1: [14.420548834522766,13.886147271592971,14.522980401561725,14.876615652026173,13.379224382776899],
2: [14.650926514851816,13.984378530820885,14.566825972585173, 16.434690726796628,15.24108978696146]}
  

после поиска я пришел к следующему коду, но оба фрагмента кода помогают рисовать для одного dict одновременно.

  fig, ax = plt.subplots()
 ax.boxplot(dict_a .values())
 ax.set_xticklabels(dict_a.keys())
  

Другой код, который я нашел, следующий, но все же он не дает мне того, что я хочу.

  labels, data = dict_a .keys(), dict_a .values()

 plt.boxplot(data)
 plt.xticks(range(1, len(labels)   1), labels)
 plt.show() 
  

есть ли способ, который работает так же, как я хочу.

Комментарии:

1. Если вы хотите сравнить a[1] с b[1], что должно произойти с a[2] и b [2]? Ничего? Является ли конечный результат 2 boxplots или 4? Или вы имеете в виду 1 поле для ключа 1 из a и b и другое поле для ключа 2 из a и b?

2. в принципе, всего должно быть 4 блока. Но сначала a [1] рядом с b[1], затем a [2] рядом с b[2]

Ответ №1:

Попробуйте это

 key = 1
values = [data[key] for data in [dict_a, dict_b]]  
fig, ax = plt.subplots()
ax.boxplot(values)
ax.set_xticklabels(['dict_a', 'dict_b'])
ax.set_title('value: %s' % key)
  

Результирующий рисунок