У меня есть словарь, который содержит несколько значений для каждого ключа.
dict = {'400.0': [0.051198, 0.051198, 0.045406, 0.15855, 0.33586, 0.079011, 0.085342], '420.0': [0.046287, 0.046287, 0.0061685, 0.099437, 0.27868, 0.093667, 0.093032], '440.0': [0.046454, 0.046454, 0.0015765, 0.052886, 0.23238, 0.084899, 0.088889], '460.0': [0.041944, 0.041944, 0.0083426, 0.027038, 0.19666, 0.032842, 0.07963], '480.0': [0.025476, 0.025476, 0.021437, 0.02845, 0.16916, 0.066085, 0.11551], '500.0': [0.037221, 0.037221, 0.02546, 0.01049, 0.14636, 0.15647, 0.17047], '520.0': [0.020769, 0.020769, 0.057708, 0.013889, 0.11284, 0.17052, 0.15862], '540.0': [0.0029368, 0.0029368, 0.086186, 0.026225, 0.090237, 0.098873, 0.072785], '560.0': [0.0024553, 0.0024553, 0.1034, 0.057088, 0.077615, 0.048153, 0.037146], '580.0': [0.020523, 0.020523, 0.105, 0.076162, 0.067578, 0.047222, 0.062943], '600.0': [0.042838, 0.042838, 0.09883, 0.077351, 0.056873, 0.048235, 0.096264], '620.0': [0.05615, 0.05615, 0.096128, 0.073473, 0.046765, 0.031932, 0.10801], '640.0': [0.065999, 0.065999, 0.093658, 0.088445, 0.040698, 0.0082049, 0.095002], '660.0': [0.099263, 0.099263, 0.074047, 0.13282, 0.041967, 0.016028, 0.1117], '680.0': [0.14634, 0.14634, 0.028374, 0.19581, 0.071541, 0.036822, 0.14719], '700.0': [0.13285, 0.13285, 0.023217, 0.23739, 0.0053786, 0.059918, 0.17545]}
Ключи - это значения «x», а значения словаря - это значения «y».
Теперь я хотел бы сделать график плотности. Возможно ли это с помощью matplotlib, и если да, то как? Большое тебе спасибо.
Обновлено:
Считаю plt.imshow
хорошим вариантом
@ Чилли, понятно. Спасибо за комментарий.
Думаю, это сделает всю работу. Пожалуйста, проверьте и дайте мне знать. Спасибо.
import pandas as pd
import matplotlib.pyplot as plt
dict1 = {
'400.0': [0.051198, 0.051198, 0.045406, 0.15855, 0.33586, 0.079011, 0.085342],
'420.0': [0.046287, 0.046287, 0.0061685, 0.099437, 0.27868, 0.093667, 0.093032],
'440.0': [0.046454, 0.046454, 0.0015765, 0.052886, 0.23238, 0.084899, 0.088889],
'460.0': [0.041944, 0.041944, 0.0083426, 0.027038, 0.19666, 0.032842, 0.07963],
'480.0': [0.025476, 0.025476, 0.021437, 0.02845, 0.16916, 0.066085, 0.11551],
'500.0': [0.037221, 0.037221, 0.02546, 0.01049, 0.14636, 0.15647, 0.17047],
'520.0': [0.020769, 0.020769, 0.057708, 0.013889, 0.11284, 0.17052, 0.15862],
'540.0': [0.0029368, 0.0029368, 0.086186, 0.026225, 0.090237, 0.098873, 0.072785],
'560.0': [0.0024553, 0.0024553, 0.1034, 0.057088, 0.077615, 0.048153, 0.037146],
'580.0': [0.020523, 0.020523, 0.105, 0.076162, 0.067578, 0.047222, 0.062943],
'600.0': [0.042838, 0.042838, 0.09883, 0.077351, 0.056873, 0.048235, 0.096264],
'620.0': [0.05615, 0.05615, 0.096128, 0.073473, 0.046765, 0.031932, 0.10801],
'640.0': [0.065999, 0.065999, 0.093658, 0.088445, 0.040698, 0.0082049, 0.095002],
'660.0': [0.099263, 0.099263, 0.074047, 0.13282, 0.041967, 0.016028, 0.1117],
'680.0': [0.14634, 0.14634, 0.028374, 0.19581, 0.071541, 0.036822, 0.14719],
'700.0': [0.13285, 0.13285, 0.023217, 0.23739, 0.0053786, 0.059918, 0.17545]}
df = pd.DataFrame(dict1)
df.plot.density()
plt.show()
Это близко, но это не совсем то, к чему я стремился, мне скорее нужно что-то вроде этого: python-graph-gallery.com/85-de density-plot-with-matplotlib
Если вы хотите использовать ключи по оси X и значения по оси Y, вы можете просто:
import matplotlib.pylab as plt
fig=plt.figure();
ax=fig.add_subplot(111);
ax.plot(dict.keys(),dict.values(),marker='.',ms=10,linestyle='none');
plt.show();
Тем не менее, это всего лишь диаграмма рассеяния. Что вы имеете в виду под плотностью?
Спасибо за ответ, я имел в виду график 2D Density, как здесь: python-graph-gallery.com/…
@james В вашем случае длина x-данных (dict.keys ()) и y-данных (dict.values ()) различается, но, по крайней мере, возможна диаграмма рассеяния.
вам нужно будет прочитать документы matplotlib, затем попробовать написать код, и, если эта попытка не удастся, опубликуйте свой код и скажите, что вы ожидали получить и что получили взамен.