Python 从两本词典中绘出直线图

Python 从两本词典中绘出直线图,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,我有两本字典: days = {'a':[1,2,3], 'b':[3,4,5]} vals = {'a':[10,20,30], 'b':[9,16,25]} 使用plotly(理想的plotly express)我想要一行两行的单线图:第一行是days['a']vsvals['a'],第二行是days['b']vsvals['b']。当然,在实践中,我可能会有更多的潜在线路。我不知道该怎么办。我很乐意用这些数据制作一个数据帧,但不确定最好的结构是什么 谢谢!为一个noob问题道歉。您可以尝

我有两本字典:

days = {'a':[1,2,3], 'b':[3,4,5]}
vals = {'a':[10,20,30], 'b':[9,16,25]}
使用plotly(理想的plotly express)我想要一行两行的单线图:第一行是
days['a']
vs
vals['a']
,第二行是
days['b']
vs
vals['b']
。当然,在实践中,我可能会有更多的潜在线路。我不知道该怎么办。我很乐意用这些数据制作一个数据帧,但不确定最好的结构是什么


谢谢!为一个noob问题道歉。

您可以尝试以下方法:

import plotly.graph_objects as go

# your data
days = {'a':[1,2,3], 'b':[3,4,5]}
vals = {'a':[10,20,30], 'b':[9,16,25]}

# generate a plot for each dictionary key
data = []
for k in days.keys():
    plot = go.Scatter(x=days[k],
                      y=vals[k],
                      mode="lines",
                      name=k # label for the plot legend
                     ) 
    data.append(plot)

# create a figure with all plots and display it
fig = go.Figure(data=data)
fig.show()
这使得:

使用Plotly Express:

import plotly.express as px
import pandas as pd

days = {'a': [1, 2, 3], 'b': [3, 4, 5]}
vals = {'a': [10, 20, 30], 'b': [9, 16, 25]}

# build DataFrame
df = pd.DataFrame(columns=["days", "vals", "label"])
for k in days.keys():
    df = df.append(pd.DataFrame({
        "days": days[k],
        "vals": vals[k],
        "label": k
    }))

fig = px.line(df, x="days", y="vals", color="label")
fig.show()

结果与上面相同。

哦,很有趣。我不知道plotly.graph\u对象。它比px好吗?而且,我不确定这是我想要的。这似乎是天['a']对VAL['a']和天['b']对VAL['b']?如果我误解了,我道歉。我误解了你的问题。我马上就修好。谢谢!!这非常有用。如果数据来自数据框,Plotly express非常方便,但在这种情况下,使用图形对象似乎足够简单。