python - 同一行的不同标记颜色
问题描述
我正在尝试使用 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) 为绿色。我该怎么做呢?非常感谢您!
解决方案
我相信这个问题的公认解决方案是go.scatter()
在你的图形数据中有 3 个不同的对象。一个用于行,一个用于每个标记。您的应用程序最终将如下所示:
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)
推荐阅读
- php - 无法在 Laravel 中使用 Foreach 更新字段
- c++ - 使用链表实现优先级队列
- android - 如何增加 ViewPager2 中图像的宽度?
- javascript - 捕获 iframe 窗口响应并发送到父窗口
- wordpress - Wordpress 未使用 nginx、letsencrypt 和 docker compose 连接到数据库
- gremlin - WebSocket 未打开:readyState 2 (CLOSING)
- javascript - 带按钮的 JS 表格生成器
- emacs - 没有漂亮打印的 cljs 测试运行器?
- arrays - 在数组中查找空值的汇编代码(使用emu8086)
- python - 如何在没有 sklearn 的情况下手动单独计算混淆矩阵的每个单元格?