Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用破折号和Plotly的多个折线图_Python_Plotly_Plotly Dash - Fatal编程技术网

Python 使用破折号和Plotly的多个折线图

Python 使用破折号和Plotly的多个折线图,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,我正在尝试创建一个多折线图,其中X轴上的每个“机器”和“时间”都有一条线。然而,我尝试了很多组合来生成X和Y标签。我从预期结果中得到的最接近的结果是下面的图表 欢迎所有建议。 这是数据帧: df3: Machine Units Pruduced Time K2K02 1900 15 K2K03 311 15 K2K01 5230 17 K2K02 1096 12 K2K03 1082

我正在尝试创建一个多折线图,其中X轴上的每个“机器”和“时间”都有一条线。然而,我尝试了很多组合来生成X和Y标签。我从预期结果中得到的最接近的结果是下面的图表

欢迎所有建议。 这是数据帧:

df3:
Machine Units Pruduced  Time
K2K02   1900            15
K2K03   311             15
K2K01   5230            17
K2K02   1096            12
K2K03   1082            11
K2K07   587             17...

因此,我正在分组和拆垛,以准备绘制图形

fdr = dff3.groupby(['Time', 'Machine']).sum()
fdr2 = fdr.unstack('Time')
fdr2
这是我的代码:

import dash_table_experiments
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import plotly.graph_objects as go
import numpy as np
import dash_table_experiments as dash_table
import dash
from dash.dependencies import Input, Output
import dash_table
import pandas as pd
import plotly_express as px
import plotly.offline as pyo

dff3 = pd.read_csv('df3.csv', encoding='latin-1', low_memory=False)
dff3
fdr = dff3.groupby(['Time', 'Machine']).sum()
fdr2 = fdr.unstack('Time')
fdr2

app = dash.Dash()

app.layout = html.Div([ 

dcc.Graph(
        id = 'GrapGo',
        figure = {
            'data' : [
                go.Scatter(

                x = fdr2.index,
                y = fdr2.loc[rowname],
                mode = "markers+lines",
                name = rowname
                )for rowname in fdr2.index


            ],
            'layout' : go.Layout(
                title = "Grafico com go",
                xaxis = {'title': 'X Label'},
                yaxis = {'title': 'y Label'}

            )
        }
    )

])

if __name__ == '__main__':
    app.run_server()

这是我得到的图表:

预期结果是:


在你的问题中,我看不出有必要运行服务器。如果您只需要生成绘图,则此代码将完成Dash v1.6.0版的工作:

import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({'Machine': ['K2K01','K2K01','K2K01','K2K02','K2K02','K2K02','K2K03','K2K03','K2K03'],
                   'Units': [100,200,400,400,300,100,500,700,500],
                   'Time':[11,12,13,11,12,13,11,12,13]})

groups = df.groupby(by='Machine')

data = []
colors=['red', 'blue', 'green']

for group, dataframe in groups:
    dataframe = dataframe.sort_values(by=['Time'])
    trace = go.Scatter(x=dataframe.Time.tolist(), 
                       y=dataframe.Units.tolist(),
                       marker=dict(color=colors[len(data)]),
                       name=group)
    data.append(trace)

layout =  go.Layout(xaxis={'title': 'Time'},
                    yaxis={'title': 'Produced Units'},
                    margin={'l': 40, 'b': 40, 't': 50, 'r': 50},
                    hovermode='closest')

figure = go.Figure(data=data, layout=layout)  
figure.show()

在你的问题中,我看不出有必要运行服务器。如果您只需要生成绘图,则此代码将完成Dash v1.6.0版的工作:

import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({'Machine': ['K2K01','K2K01','K2K01','K2K02','K2K02','K2K02','K2K03','K2K03','K2K03'],
                   'Units': [100,200,400,400,300,100,500,700,500],
                   'Time':[11,12,13,11,12,13,11,12,13]})

groups = df.groupby(by='Machine')

data = []
colors=['red', 'blue', 'green']

for group, dataframe in groups:
    dataframe = dataframe.sort_values(by=['Time'])
    trace = go.Scatter(x=dataframe.Time.tolist(), 
                       y=dataframe.Units.tolist(),
                       marker=dict(color=colors[len(data)]),
                       name=group)
    data.append(trace)

layout =  go.Layout(xaxis={'title': 'Time'},
                    yaxis={'title': 'Produced Units'},
                    margin={'l': 40, 'b': 40, 't': 50, 'r': 50},
                    hovermode='closest')

figure = go.Figure(data=data, layout=layout)  
figure.show()

非常感谢你,托尼。服务器没有问题,我可以采用在服务器上运行,我的疑问是如何创建和附加更有效的跟踪。非常感谢你,我的朋友。祝你今天愉快。非常感谢你,托尼。服务器没有问题,我可以采用在服务器上运行,我的疑问是如何创建和附加更有效的跟踪。非常感谢你,我的朋友。祝您有个美好的一天。