это мой первый пост и пока я не нашел (насколько я искал). Итак, я пытаюсь создать панель инструментов с потоковым освещением и для графиков, которые я использую сюжетно. Я последовал примеру, чтобы иметь «DateTime» в качестве оси X и два разных столбца, чтобы сделать 2 строки с использованием одной и той же оси Y.
Но моя проблема в том, что на графике видно, что у них разные оси Y, а не одинаковые. С примерами, которые я пробовал, я не получаю такого же поведения, и я пробовал разные подходы к решению этой проблемы, но он остается прежним. Мне интересно, есть ли у кого-то такая же ошибка, как у меня, или есть решение.
Я пытался использовать эти данные:
print(df)
DateTime value_num1 value_num2
18:12:17 84.4937 84.49000
18:12:05 84.5038 84.47000
18:11:59 84.5247 84.49000
18:11:52 84.5386 84.52000
18:11:42 84.552 84.51000
df2 = df.sort_values(by = "DateTime")
Пример 1:
fig = px.line(df2, x='DateTime', y=['value_num1', 'value_num2'])
Пример 2:
fig = px.line(df2, x='DateTime', y='value_num1')
fig.add_scatter(x=df2['DateTime'], y=df2['value_num2'])
Я также пытался использовать расплав:
dfm = df2.melt('DateTime', var_name='cols', value_name='vals')
DateTime cols vals
18:11:42 value_num1 84.552
18:11:52 value_num1 84.5386
18:11:59 value_num1 84.5247
18:12:05 value_num1 84.5038
18:12:17 value_num1 84.4937
18:11:42 value_num2 84.51000
18:11:52 value_num2 84.52000
18:11:59 value_num2 84.49000
18:12:05 value_num2 84.47000
18:12:17 value_num2 84.49000
fig = px.line(dfm, x='DateTime', y='vals', color='cols')
Но иметь тот же результат. Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно, или есть ли другой способ поставить «нормальный» сюжет с помощью Streamlit? Я пробовал matplotlib, но, похоже, я не мог использовать изображение для потока.
Вот так выглядит сюжет. введите описание изображения здесь
Спасибо за ваше время.
Преобразование времени в формат даты и времени.
import pandas as pd
import plotly.express as px
data = {
'DateTime': ['18:12:17', '18:12:05', '18:11:59', '18:11:52', '18:11:42'],
'value_num1': [84.4937, 84.5038, 84.5247, 84.5386, 84.552],
'value_num2': [84.49000, 84.47000, 84.49000, 84.52000, 84.51000]
}
df = pd.DataFrame(data)
# Convert DateTime string to datetime format.
df['DateTime'] = pd.to_datetime(df['DateTime'],format= '%H:%M:%S' ).dt.time
fig = px.line(df, x='DateTime', y=['value_num1', 'value_num2'])
fig.update_layout(
xaxis = dict(autorange = "reversed")
)
fig.show()
Привет, Ферди, я пробовал это, но, похоже, это не сработало. Итак, я сохранил фрейм данных в файл TSV и загрузил его в df, и, похоже, он работает. Преобразование даты полностью работает, но я подозреваю, что что-то еще в моем коде или в том, как я его обрабатываю, приводит к появлению этой ошибки. Итак, я собираюсь написать файл, а затем прочитать его, потому что это сработало для меня. Большое спасибо за ваш ответ.