Как визуализировать списки в виде оси X в Matplotlib? - PullRequest
0 голосов
/ 12 февраля 2020

Скажем, у меня есть два списка:

xlst = [[1,2,3],[2,3,5],[3,1,2],[2,5,3],[3,0,1]]
ylst = [0.25,0.22,0.35,0.37,0.17]

У меня есть такие данные, потому что списки в xlist задаются трехмерными координатами. Теперь я хочу обучить модели машинного обучения, используя xlst в качестве функций и ylst в качестве меток. Чтобы визуализировать данные, мне нужно построить xlst как ось x и ylst как ось y на одном графике, используя Matplotlib. Как мне сделать это, чтобы сделать график понятным?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Здесь проверьте этот код:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

xlst = [[1,2,3],[2,3,5],[3,1,2],[2,5,3],[3,0,1]]
ylst = [0.25,0.22,0.35,0.37,0.17]

xlst = np.asarray(xlst)
ylst = np.asarray(ylst)

xaxis = xlst[:,0]
yaxis = xlst[:,1]
zaxis = xlst[:,2]

img = ax.scatter(xaxis, yaxis, zaxis, c=ylst, cmap=plt.hot())
fig.colorbar(img)
plt.show()

выход:

enter image description here

0 голосов
/ 12 февраля 2020

Давайте сосредоточимся на визуализации части вопроса. Машинное обучение - это совершенно другой поток.

Один из способов его визуализации - трехмерный сюжет.

https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

Вам потребуется для этого преобразуйте свой xlst в три параллельных массива.

Однако я предпочитаю по возможности находить способ представления данных в 2D-графиках. Я считаю, что это облегчает понимание данных. Частью работы по визуализации данных является упрощение данных таким образом, чтобы читатель мог их понять. Это означает принятие определенного решения относительно того, что важно. Для этого иногда нужно подумать о значении данных и о том, как они могут быть значимыми в формате 2D. Если я правильно понимаю, вы на самом деле хотите представить 4 измерения (3 в xlst и 1 в ylst).

Существуют ли способы, которыми данные могут быть упрощены или преобразованы так, чтобы получить не более трех значимых измерений ?

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.contour.html

Если это так, то контурный график может быть хорошим способом показать данные. Если график должен отображаться в черно-белом режиме, близким родственником контурного графика является несколько линейных графиков на разных уровнях.

Альтернативно, некоторые многомерные данные лучше всего представлены несколькими графиками, каждый из которых показывает ограниченное подмножество размеры.

...