当第二个y轴添加时,曲线不会在曲线上显示

时间:2018-03-07 20:44:50

标签: python-3.x plotly raspberry-pi3

我正在密切地绘制来自覆盆子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/

1 个答案:

答案 0 :(得分:1)

以防万一其他人从谷歌搜索发现这个帖子 - 我想出了缺少的代码行......

在布局yaxis2下,你必须指定覆盖=' y'。

现在有效:)

layout = go.Layout(
        yaxis=dict(
            title='Temperature deg C',
            side='left'
            ),
        yaxis2=dict(
            title='Humidity Rel %',
            side='right',
            overlaying='y'
            )
        )