Skip to content

Commit 08e480b

Browse files
author
Mohammed Sadique
committed
picking color
1 parent 06dc79f commit 08e480b

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

lib/matplotex/figure/areal/scatter.ex

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule Matplotex.Figure.Areal.Scatter do
22
@moduledoc false
3+
alias Matplotex.Colorscheme.Garner
34
alias Matplotex.Figure.Areal.PlotOptions
45
alias Matplotex.Figure.Areal.Region
56
alias Matplotex.Figure.Areal.Ticker
@@ -31,7 +32,7 @@ defmodule Matplotex.Figure.Areal.Scatter do
3132
def create(%Figure{axes: %__MODULE__{dataset: data} = axes} = figure, {x, y}, opts \\ []) do
3233
x = determine_numeric_value(x)
3334
y = determine_numeric_value(y)
34-
dataset = Dataset.cast(%Dataset{x: x, y: y}, opts)
35+
dataset = Dataset.cast(%Dataset{x: x, y: y}, opts)|> Dataset.update_cmap()
3536
datasets = data ++ [dataset]
3637
xydata = flatten_for_data(datasets)
3738

@@ -97,7 +98,10 @@ defmodule Matplotex.Figure.Areal.Scatter do
9798
end
9899
def capture([{{{x, y}, s},color}| to_capture],captured, %Dataset{
99100
marker: marker,
101+
colors: colors,
102+
cmap: cmap
100103
}= dataset) do
104+
color = colors |> Enum.min_max()|>Garner.garn_color(color, cmap)
101105
capture(
102106
to_capture,
103107
captured ++

lib/matplotex/figure/dataset.ex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
defmodule Matplotex.Figure.Dataset do
22
@moduledoc false
3+
alias Matplotex.Colorscheme.Colormap
4+
35
@default_color "blue"
46
@default_marker "o"
57
@default_linestyle "_"
@@ -31,4 +33,9 @@ defmodule Matplotex.Figure.Dataset do
3133
def cast(dataset, values) do
3234
struct(dataset, values)
3335
end
36+
37+
def update_cmap(%__MODULE__{cmap: cmap} = dataset) do
38+
%__MODULE__{dataset | cmap: Colormap.fetch_cmap(cmap)}
39+
end
40+
3441
end

test/matplotex/figure/areal/scatter_test.exs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,22 @@ defmodule Matplotex.Figure.Areal.ScatterTest do
2525
refute Enum.all?(tail, fn x -> x == h end)
2626

2727
end
28+
29+
test "generates elements with various saizes and colors if it passed a size and color attrbute" do
30+
x = [1,2,3,4,5]
31+
y = [10, 20, 30, 40, 50]
32+
sizes = [1, 2, 3, 4, 5]
33+
assert %Figure{axes: %{element: elements}} = x|>Matplotex.scatter(y, sizes: sizes, colors: sizes)|>Figure.materialize()
34+
[h | tail] = elements|>Enum.filter(fn x -> x.type == "plot.marker" end)|>Enum.map(fn x ->
35+
x.r
36+
end)
37+
38+
refute Enum.all?(tail, fn x -> x == h end)
39+
[h | tail] = elements|>Enum.filter(fn x -> x.type == "plot.marker" end)|>Enum.map(fn x ->
40+
x.fill
41+
end)
42+
refute Enum.all?(tail, fn x -> x == h end)
43+
end
2844
end
2945

3046
describe "generate_ticks/2" do

0 commit comments

Comments
 (0)