Normalmente, você não notará a diferença entre o SVG e a figura renderizada WebGL, a menos que esteja traçando uma grande quantidade de conjunto de dados. Isso ocorre porque o WebGL foi projetado para lidar com grandes quantidades de computação usando a GPU.
Neste artigo, tentaremos mostrar como usar a classe ScatterGL da plotly graph_objects para plotar um gráfico de dispersão usando Webgl.
Plotando 1 milhão de pontos usando o plotly express
Embora o plotly graph_objects forneça uma grande quantidade de personalização e controle de baixo nível, é bom entender o método mais rápido e eficiente de criar um enredo renderizado WebGL.
É aqui que o plotly expresso entra. Usando o parâmetro render_mode, você pode criar um gráfico de dispersão e dizer plotly para usar o webgl em vez de svg para renderizar uma figura.
Um exemplo é como mostrado no seguinte:
importar plotly.expresso como pxO código anterior cria um gráfico de dispersão de 10000 pontos usando o renderizador WebGL Enable.
Usando plotly graph_objects
Felizmente, em plotly graph_objects, podemos usar a função ScatterGL que usa o WebGL por padrão.
O código de exemplo é como mostrado no seguinte:
importar plotly.Graph_Objects como GoRender Time (SVG vs Webgl)
Como mencionado, o WebGL oferece uma vantagem de desempenho sobre o SVG. Isso pode ser ilustrado ao plotar um grande conjunto de dados.
Exemplo 1: Usando Scattergl
importar plotly.Graph_Objects como GoO código anterior renderiza cerca de 3m 8.3seg.
Exemplo 2: sem webgl
importar plotly.expresso como pxEste código renderiza em cerca de 5min 12.5segs.
Lembre -se de que os valores anteriores são de uma vez, mas não refletem com precisão a vantagem do WebGL sobre SVG e vice -versa.
Recomendamos que você faça seu teste que corresponda às suas necessidades de ambiente e computação.
Conclusão
Neste artigo, ilustramos como podemos criar um gráfico de dispersão usando a renderização SVG e WebGL em plotly.