我正在密切地绘制来自覆盆子pi的温度和湿度读数。
在同一个y轴上它们显得很好。
当我通过布局添加第二个y轴时,温度曲线(trace1)不显示。
在plotly本身上它显示了trace1和trace2的数据,但由于某种原因它没有绘制trace1。
有什么想法吗?!
import plotly.plotly as py
import json
import time
import datetime as dt
import plotly.graph_objs as go
import numpy as np
import sqlite3
import pandas as pd
con = sqlite3.connect('/home/pi/environment.db')
#c = conn.cursor()
df = pd.read_sql_query("SELECT date_time, temp, humid FROM readings",
con)
df['temp_MA'] = df.temp.rolling(10).mean()
df['humid_MA'] = df.humid.rolling(10).mean()
trace1 = go.Scatter(
name = 'Temperature degC',
x=df.date_time,
y=df.temp_MA,
yaxis = 'y1'
)
trace2 = go.Scatter(
name = 'Rel Humidity %',
x=df.date_time,
y=df.humid_MA,
yaxis = 'y2'
)
data = [trace1, trace2]
layout = go.Layout(
yaxis=dict(
title='Temperature deg C',
side='left'
),
yaxis2=dict(
title='Humidity Rel %',
side='right'
)
)
fig = go.Figure(data=data, layout=layout)
py.plot(fig)
con.close()
情节图如下: https://plot.ly/~uilfut/58/temperature-degc-vs-rel-humidity/
答案 0 :(得分:1)
以防万一其他人从谷歌搜索发现这个帖子 - 我想出了缺少的代码行......
在布局yaxis2下,你必须指定覆盖=' y'。
现在有效:)
layout = go.Layout(
yaxis=dict(
title='Temperature deg C',
side='left'
),
yaxis2=dict(
title='Humidity Rel %',
side='right',
overlaying='y'
)
)