【问题标题】:Different marker colors for the same line同一行的不同标记颜色
【发布时间】:2019-08-14 15:12:40
【问题描述】:

我正在尝试使用 plotly 和 dash 为 webapp 创建一个简单的折线图。我想要一条连接两点的线。我希望一个点是红色的,另一个是绿色的。到目前为止,这是我所拥有的:

import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets = external_stylesheets)
graph = dcc.Graph(figure = {
    'data' : [
        go.Scatter(x = [1,4], y = [2,3], mode = 'lines+markers', opacity = 0.7, marker = {
            'size' : 15,
            'line' : {'width' : 0.5, 'color' : 'black'}
        })
    ]
})
app.layout = html.Div([graph])
if __name__ == '__main__':
    app.run_server(debug = False)

我在 Jupyter 笔记本中运行此代码,其中包含所有最新的软件包。 如果我运行这段代码,我会得到我想要的线图,但两个点都是蓝色的。我希望 (1, 2) 对应的点为红色, (4, 3) 为绿色。我该怎么做呢? 提前非常感谢您!

【问题讨论】:

    标签: python plotly plotly-dash


    【解决方案1】:

    我相信这个问题的公认解决方案是在你的图形数据中有 3 个不同的 go.scatter() 对象。一个用于行,一个用于每个标记。您的应用最终将如下所示:

    import dash
    import dash_core_components as dcc
    import dash_html_components as html
    import plotly.graph_objs as go
    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
    app = dash.Dash(__name__, external_stylesheets = external_stylesheets)
    graph = dcc.Graph(figure = {
        'data' : [
            go.Scatter(x = [1,4], y = [2,3], mode = 'lines+markers', opacity = 0.7, 
                       marker={'color':["red","green"], "size":15})
        ]
    })
    app.layout = html.Div([graph])
    
    if __name__ == '__main__':
        app.run_server(debug = False)
    

    【讨论】:

    • 嗨!非常感谢你的回复。这似乎绝对解决了我的问题。我想知道......还有其他方法可以解决这个问题吗?绘制 3 倍的图表数量似乎不必要地低效。
    • 哦,还有更好的方法。抱歉,我认为您必须为不同的彩条做不同的标记。查看我编辑的答案
    猜你喜欢
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    相关资源
    最近更新 更多