Plotly: как построить многострочный график?

#python #plotly #plotly-express

#python #plotly #plotly-экспресс

Вопрос:

У меня есть 2d-список, и я хочу создать многострочную диаграмму для представления этих данных.

Пока у меня есть этот код:

 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()
 

который создает совершенно неправильный график:
введите описание изображения здесь

Ответ №1:

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

 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()
 

введите описание изображения здесь

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

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

2. Я также создал и запустил этот код в jupyterlab, и он отображается правильно, отображается ли пример кода на сайте PLOTLY?

3. Да, все примеры кода с их сайта работают так, как задумано, возможно, в частности, я использую Google colab здесь, я не знаю, будет ли это иметь значение.

4. Версия Google Colaboratory — 4.4.1, а текущая последняя версия — 4.14.1, так почему бы вам не попробовать pip install -U plotly обновиться?

5. Кажется, это исправлено, большое спасибо! (предлагаю вам добавить «обязательно используйте версию plotly> x» к ответу здесь)