首页 > 解决方案 > 将多个标头名称解析为 Plotly 的最快方法(Python

问题描述

所以我一直在尝试绘制多条轨迹。我编写了以下代码,在同一张图上绘制了两条轨迹:

import pandas as pd
import plotly.express as px
import plotly.graph_objects as go

data = pd.read_csv("data.csv")
headers = pd.read_csv("data.csv", index_col=0, nrows=0).columns.tolist()
fig = go.Figure()

fig = px.line(data, x="DateTime", y=[headers[0], headers[1]])
fig.show()

在此示例中,第一个和第二个标题被绘制为图形上的轨迹。我想知道除了 y=[headers[n],headers[n+1]]... 之外是否还有其他方法可以绘制所有线条?我尝试只使用没有索引的 headers 数组,但它给出了 ValueError Plotly Express cannot process wide-form data with columns of different type.

那么,是否有一种特定于情节的方法可以使其更高效和更具可读性,而不仅仅是在情节标题定义中编写每个索引,还是可以使用标准 python 来完成?

编辑:实际数据样本是一个 csv,它提供带有标题和日期的 int 值:

DateTime    X Y Z
01-JAN-2018,5,6,7...
02-JAN-2018,7,8,9

标签: pythonpython-3.xpandasplotly

解决方案


如果您的示例数据是 CSV 中的数据,则将y定义为数字列的简单案例

import io
import pandas as pd
import plotly.express as px
headers = pd.read_csv(io.StringIO("""DateTime,X,Y,Z
01-JAN-2018,5,6,7
02-JAN-2018,7,8,9
"""))

px.line(headers, x="DateTime", y=headers.select_dtypes("number").columns)

在此处输入图像描述


推荐阅读