gpt4 book ai didi

python - 如何有效地绘制大量线形,其中点两两相连?

转载 作者:行者123 更新时间:2023-12-03 23:51:41 25 4
gpt4 key购买 nike

我需要用 plotly 绘制大量的线段.与所有点都可以连接的常规散点图相反,这里我只需要两两连接点。

我考虑了不同的选择:

  • 向绘图添加线条形状;显然比较慢
  • 创建大量只有两个点的线图

  • 有没有更合适的方法?可能是一个散点图,其中只有每隔几个点连接。

    我正在寻找一种有效的方法来在 Python 中生成绘图,同时也能获得良好的渲染性能。

    最佳答案

    此答案基于 Maximilian Peters 评论中的建议,以及 Jezraels 对 insert a new row after every nth row 的处理方法。 .

    一个关键部分还包括fig.update_traces(connectgaps=False)
    剧情:

    enter image description here

    完整代码:

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

    # dataframe, sample
    np.random.seed(123)
    cols = ['a','b','c', 'd', 'e', 'f', 'g']
    X = np.random.randn(50,len(cols))
    df=pd.DataFrame(X, columns=cols)
    df=df.cumsum()
    df['id']=df.index

    # dataframe with every nth row containing np.nan
    df2 = (df.iloc[1::2]
    .assign(id = lambda x: x['id'] + 1, c = np.nan)
    .rename(lambda x: x + .5))
    df1 = pd.concat([df, df2], sort=False).sort_index().reset_index(drop=True)
    df1.loc[df1.isnull().any(axis=1), :] = np.nan
    df1


    # plotly figure
    colors = px.colors.qualitative.Plotly
    fig = go.Figure()

    for i, col in enumerate(df1.columns[:-1]):
    fig.add_traces(go.Scatter(x=df1.index, y=df1[col],
    mode='lines+markers', line=dict(color=colors[i])))

    fig.update_traces(connectgaps=False)

    fig.show()

    关于python - 如何有效地绘制大量线形,其中点两两相连?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56723792/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com