1 回答

TA貢獻1811條經驗 獲得超6個贊
聽起來您的問題有兩個部分:以可視化庫可以理解的方式格式化數據并使用雙軸實際可視化它。
您的示例屏幕截圖包含一些交互式控件,因此我建議您使用散景,它可以讓您“免費”縮放和平移,而不是matplotlib
.?此外,我發現bokeh
添加雙軸的方式更直接。
對于第一部分,您可以將您擁有的數據合并到一個數據框中,如下所示:
import pandas as pd
from bokeh.models import LinearAxis, Range1d, ColumnDataSource
from bokeh.plotting import figure, output_notebook, show
output_notebook() #if working in Jupyter Notebook, output_file() if not
LT_TIME = ['18:14:17.566 ', '18:14:17.570']
LT_RP = [-110,-113]
LT_RQ = [-3,-5]
GNR_TIME = ['18: 15: 42.489', '18:32:39.489']
GNR_RP = [-94, -94]
GNR_RQ = [-3, -7]
s1 = list(zip(LT_TIME, LT_RP)) + list(zip(GNR_TIME, GNR_RP))
s2 = list(zip(LT_TIME, LT_RQ)) + list(zip(GNR_TIME, GNR_RQ))
df1 = pd.DataFrame(s1, columns=["Date", "RP"])
df2 = pd.DataFrame(s2, columns=["Date", "RQ"])
df = df1.merge(df2, on="Date")
source = ColumnDataSource(df)
要將數據可視化為雙軸折線圖,我們只需指定額外的 y 軸并將其放置在布局中:
p = figure(x_range=df["Date"], y_range=(-90, -120))
p.line(x="Date", y="RP", color="cadetblue", line_width=2, source=source)
p.extra_y_ranges = {"RQ": Range1d(start=0, end=-10)}
p.line(x="Date", y="RQ", color="firebrick", line_width=2, y_range_name="RQ", source=source)
p.add_layout(LinearAxis(y_range_name="RQ"), 'right')
show(p)
添加回答
舉報