【问题标题】:How to plot a bisector line on Plotly如何在 Plotly 上绘制平分线
【发布时间】:2019-10-25 13:51:49
【问题描述】:

我有一张散点图,我需要在上面追踪平分线。我想知道 Plotly 上是否有一种自动生成的方法,或者有一种简化的方法来计算 python 中的方程以生成值列表并跟踪行。

我的代码:

trace1 = go.Scatter(
    x = eixo_x, # My list of values for 'x'
    y = eixo_y, # My list of values for 'y'
    mode = 'markers',
    marker = dict(color = 'rgb(0, 176, 240)')
)

dados = [trace1]
layout = go.Layout(
    title = 'Unitários Observados | Unitários Estimados',
    autosize = False,
    width = 1000,
    height = 500,
    xaxis = dict(
        showgrid = True),
    yaxis = dict(
        tickmode = 'array',
        showgrid = True
    )
)

fig = go.Figure(data = dados, layout = layout)
fig.show()

我的剧情:

现在我需要在对角线上画一条线,平分线。

编辑

有几个关于 bisector 的问题,但不是 Plotly 的问题。

编辑 2

在几何学中,二等分是将某物分成两个相等或全等的部分,通常用一条线,然后称为平分线。 Wikipedia

例子:

【问题讨论】:

  • 平分线是指通过所有数据点的最佳拟合线吗?
  • 我在我的问题上添加了更多细节。希望能有所帮助。
  • 那么从左下角到右上角有一条线?
  • 正如您自己所说,二等分适用于两条现有的线,有些地方有一个角度。我看不出你的数据有什么角度。只有积分。
  • 角度应根据“x”和“y”轴值计算,目的是将我在绘图上的点分为两部分。

标签: python python-3.x plotly


【解决方案1】:

我没有使用 Plotly 的方程式或自动函数,但以下代码暂时解决了我的问题:

我已经为 x 和 y 设置了行限制,从每个列表中获取最小值和最大值:

# Trace 2
line_x = [min(eixo_x), max(eixo_x)]
line_y = [min(eixo_y), max(eixo_y)]

并为它添加了第二条痕迹:

trace2 = go.Scatter(
    x = line_x,
    y = line_y,
    mode = 'lines',
    marker = dict(color = 'rgb(127, 127, 127)'),
    line = dict(dash = 'dash')
)

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    相关资源
    最近更新 更多