У меня есть 2d-список, и я хочу создать Plotly многолинейную диаграмму для представления этих данных.
Пока у меня есть этот код:
print(len(conv_loss),len(conv_loss[0]))
print(np.array(conv_loss).shape)
conv_loss_df = pd.DataFrame(data=conv_loss, index=namelist, columns=rs)
print(conv_loss_df)
который выводит:
4 10
(4, 10)
0.0 0.1 0.2 ... 0.7 0.8 0.9
mnist 0.020498 0.123125 0.222588 ... 1.122625 1.387823 1.701249
fashion_mnist 0.232772 0.316569 0.433325 ... 1.281240 1.545556 1.830893
cifar10 0.957889 0.851946 0.921106 ... 1.645510 1.815194 2.104631
cifar100 3.516734 3.052485 3.021778 ... 3.688753 3.937770 4.599526
Я бы хотел, чтобы на диаграмме ось x была rs
, цвета были namelist
, а ось y была соответствующими данными.
Я поиграл с примерами, которые они дают для линейных графиков, но я просто не могу заставить его работать.
То, как я должен работать, чтобы не ошибиться:
fig = px.line(conv_loss_df,x=rs)
fig.show()
который создает совершенно неправильный график:
Желаемый график можно нарисовать, нацелившись на фрейм данных с транспонированными данными. Это было создано с образцами данных.
import numpy as np
import pandas as pd
import plotly.express as px # plotly ver 4.14.1
import random
rs = np.arange(0.1, 1.0, 0.1)
namelist = ['mnist', 'Fasion_mnist','cifar10','cifar100']
mnist = np.random.rand(9)
fasion_mnist = np.random.rand(9)
cifar10 = np.random.rand(9)
cifar100 = np.random.rand(9)
conv_loss_df = pd.DataFrame([mnist,fasion_mnist,cifar10,cifar100], index=namelist, columns=rs)
conv_loss_df.T
fig = px.line(conv_loss_df.T)
fig.show()
Я также создал и запустил этот код в jupyterlab, и он отображается правильно. Отображается ли образец кода на сайте PLOTLY?
Да, все примеры кода с их сайта работают по назначению, возможно, в частности, я использую здесь Google Colab, я не знаю, будет ли это иметь значение.
Версия Google Colaboratory — 4.4.1, а текущая последняя версия — 4.14.1, так почему бы вам не попробовать pip install -U plotly
обновиться?
Вроде починил, большое спасибо! (рекомендую вам добавить «убедитесь, что вы используете сюжетную версию > x» к ответу здесь)
Да, это. Я добавил номер версии в качестве комментария к коду.
Если я скопирую и вставлю код, который вы только что дали, я получу пустой график. Это в файле
.ipynb
, так что, может быть, это как-то связано?