@@ -58,7 +58,11 @@ defmodule Matplotex.Figure.Areal.Scatter do
5858 } ,
5959 element: elements
6060 } = axes ,
61- rc_params: % RcParams { x_padding: x_padding , y_padding: y_padding }
61+ rc_params: % RcParams {
62+ x_padding: x_padding ,
63+ y_padding: y_padding ,
64+ concurrency: concurrency
65+ }
6266 } = figure
6367 ) do
6468 x_padding_value = width_region_content * x_padding
@@ -77,50 +81,31 @@ defmodule Matplotex.Figure.Areal.Scatter do
7781 shrinked_height_region_content ,
7882 { x_region_content + x_padding_value , y_region_content + y_padding_value }
7983 )
80- |> capture ( )
84+ |> capture ( concurrency )
8185 end )
8286 |> List . flatten ( )
8387
8488 elements = elements ++ line_elements
8589 % Figure { figure | axes: % { axes | element: elements } }
8690 end
8791
88- def materialize ( xystream , figure ) do
89- __MODULE__ . materialized_by_region ( figure )
90- |> material_stream ( xystream )
92+ def capture ( % Dataset { transformed: transformed } = dataset , concurrency ) do
93+ if concurrency do
94+ process_concurrently ( transformed , concurrency , [ [ ] , dataset ] )
95+ else
96+ capture ( transformed , [ ] , dataset )
97+ end
9198 end
9299
93- def material_stream (
94- % Figure {
95- axes: % __MODULE__ {
96- limit: % TwoD { x: xlim , y: ylim } ,
97- element: element ,
98- coords: % Coords { bottom_left: { blx , bly } } ,
99- size: { width , height }
100- }
101- } = figure ,
102- xystream
100+ def capture (
101+ [ { x , y } | to_capture ] ,
102+ captured ,
103+ % Dataset {
104+ color: color ,
105+ marker: marker ,
106+ marker_size: marker_size
107+ } = dataset
103108 ) do
104- { Stream . map ( xystream , fn { x , y } ->
105- { matx , maty } = transformation ( x , y , xlim , ylim , width , height , { blx , bly } )
106- Marker . generate_marker ( "o" , matx , maty , "blue" , 5 )
107- end )
108- |> Stream . concat ( element ) , figure }
109- end
110-
111- defp capture ( % Dataset { transformed: transformed } = dataset ) do
112- capture ( transformed , [ ] , dataset )
113- end
114-
115- defp capture (
116- [ { x , y } | to_capture ] ,
117- captured ,
118- % Dataset {
119- color: color ,
120- marker: marker ,
121- marker_size: marker_size
122- } = dataset
123- ) do
124109 capture (
125110 to_capture ,
126111 captured ++
@@ -131,7 +116,7 @@ defmodule Matplotex.Figure.Areal.Scatter do
131116 )
132117 end
133118
134- defp capture ( _ , captured , _ ) , do: captured
119+ def capture ( _ , captured , _ ) , do: captured
135120
136121 @ impl Areal
137122 def with_legend_handle (
0 commit comments