Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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_Python 3.x_Dataframe_Data Visualization_Plotly Python - Fatal编程技术网

Python Plotly:在一个图形中使用条件打印多个数据帧

Python Plotly:在一个图形中使用条件打印多个数据帧,python,python-3.x,dataframe,data-visualization,plotly-python,Python,Python 3.x,Dataframe,Data Visualization,Plotly Python,我有4个数据帧用于4台不同的机器(df1、df2、df3、df4)。数据框的所有列都相同(相同的列名/特征) df1的示例如下所示 Day-Shift Brand Production Day 06-26 A 438 Night 06-26 A 215 Day 06-27 B 120 Night 06-27 B 180 Day 06-28 B 500 Day-Shift Brand Production D

我有4个数据帧用于4台不同的机器(df1、df2、df3、df4)。数据框的所有列都相同(相同的列名/特征)

df1的示例如下所示

Day-Shift    Brand  Production
Day 06-26    A      438
Night 06-26  A      215
Day 06-27    B      120
Night 06-27  B      180
Day 06-28    B      500
Day-Shift    Brand  Production
Day 06-26    B      138
Night 06-26  B      205
Day 06-27    E      200
Night 06-27  E      190
Day 06-28    C      100
df2的示例如下所示

Day-Shift    Brand  Production
Day 06-26    A      438
Night 06-26  A      215
Day 06-27    B      120
Night 06-27  B      180
Day 06-28    B      500
Day-Shift    Brand  Production
Day 06-26    B      138
Night 06-26  B      205
Day 06-27    E      200
Night 06-27  E      190
Day 06-28    C      100
但是机器的所有数据框品牌名称都包括名为B的品牌。我想做的是在一个图形中绘制这3个数据帧的折线图(x轴为日班,y轴为生产线,颜色为品牌)。需要为每台机器指定一个固定的颜色(例如:df1(机器1)使用红色)和对于所有机器,品牌B应显示为实线('-')所有其他品牌(例如:a、C、D、E等)显示为虚线('-')。


我在一张图中绘制了不同的折线图。但我不知道如何像上面那样绘图。

在下面的示例中,每台机器都以自己的颜色绘制,品牌“B”以实线绘制,而其他品牌则按照要求以虚线绘制

基本逻辑如下所示:

  • 根据
    品牌
    值,为每台包含
    生产
    值或
    值的机器创建两个numpy数组。
    • 此技术可保持值数组长度相等,从而实现正确的x轴表示
    • 姓名:
      • b1
        (马赫数1,品牌“B”),
        o1
        (马赫数1,品牌“其他”))
      • b2
        (马赫数2,品牌“B”),
        o2
        (马赫数2,品牌“其他”))
  • 循环检查机器1的品牌,并为每个品牌创建命名轨迹
  • 循环检查机器2的品牌,并为每个品牌创建命名轨迹
  • <对其他机器重复相同的逻辑…>
  • 绘制图表
示例代码: 图表:

评论(TL;DR): 这里显示的示例代码使用较低级别的Plotly API,而不是方便的包装,例如
graph\u objects
to
express
。原因是,我(个人)觉得向用户展示“幕后”发生的事情是有帮助的,而不是用一个方便的包装来掩盖底层代码逻辑


这样,当用户需要修改图形的更精细细节时,他们将更好地理解Plotly为底层图形引擎(orca)构建的
列表和
dict
s。

Woah..很好的解释..非常感谢,伙计。