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

У меня есть 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()

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
1 116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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()

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

Jonathan Woollett-light 15.12.2020 09:22

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

r-beginners 15.12.2020 09:27

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

Jonathan Woollett-light 15.12.2020 09:29

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

r-beginners 15.12.2020 09:36

Вроде починил, большое спасибо! (рекомендую вам добавить «убедитесь, что вы используете сюжетную версию > x» к ответу здесь)

Jonathan Woollett-light 15.12.2020 09:41

Да, это. Я добавил номер версии в качестве комментария к коду.

r-beginners 15.12.2020 09:45

Другие вопросы по теме