Skip to main content

plotlars_core/components/
shape.rs

1/// An enumeration of various marker shapes used in plots.
2///
3/// # Example
4///
5/// ```rust
6/// use polars::prelude::*;
7/// use plotlars::{Axis, Legend, Plot, Rgb, ScatterPlot, Shape, Text, TickDirection};
8///
9/// let dataset = LazyCsvReader::new(PlRefPath::new("data/penguins.csv"))
10///     .finish()
11///     .unwrap()
12///     .select([
13///         col("species"),
14///         col("sex").alias("gender"),
15///         col("flipper_length_mm").cast(DataType::Int16),
16///         col("body_mass_g").cast(DataType::Int16),
17///     ])
18///     .collect()
19///     .unwrap();
20///
21/// let axis = Axis::new()
22///     .show_line(true)
23///     .tick_direction(TickDirection::OutSide)
24///     .value_thousands(true);
25///
26/// ScatterPlot::builder()
27///     .data(&dataset)
28///     .x("body_mass_g")
29///     .y("flipper_length_mm")
30///     .group("species")
31///     .opacity(0.5)
32///     .size(12)
33///     .colors(vec![
34///         Rgb(178, 34, 34),
35///         Rgb(65, 105, 225),
36///         Rgb(255, 140, 0),
37///     ])
38///     .shapes(vec![
39///         Shape::Circle,
40///         Shape::Square,
41///         Shape::Diamond,
42///     ])
43///     .plot_title(
44///         Text::from("Scatter Plot")
45///             .font("Arial")
46///             .size(20)
47///             .x(0.065)
48///     )
49///     .x_title("body mass (g)")
50///     .y_title("flipper length (mm)")
51///     .legend_title("species")
52///     .x_axis(
53///         &axis.clone()
54///             .value_range(2500.0, 6500.0)
55///     )
56///     .y_axis(
57///         &axis.clone()
58///             .value_range(170.0, 240.0)
59///     )
60///     .legend(
61///         &Legend::new()
62///             .x(0.85)
63///             .y(0.15)
64///     )
65///     .build()
66///     .plot();
67/// ```
68///
69/// ![Example](https://imgur.com/9jfO8RU.png)
70#[derive(Clone, Copy)]
71pub enum Shape {
72    Circle,
73    CircleOpen,
74    CircleDot,
75    CircleOpenDot,
76    Square,
77    SquareOpen,
78    SquareDot,
79    SquareOpenDot,
80    Diamond,
81    DiamondOpen,
82    DiamondDot,
83    DiamondOpenDot,
84    Cross,
85    CrossOpen,
86    CrossDot,
87    CrossOpenDot,
88    X,
89    XOpen,
90    XDot,
91    XOpenDot,
92    TriangleUp,
93    TriangleUpOpen,
94    TriangleUpDot,
95    TriangleUpOpenDot,
96    TriangleDown,
97    TriangleDownOpen,
98    TriangleDownDot,
99    TriangleDownOpenDot,
100    TriangleLeft,
101    TriangleLeftOpen,
102    TriangleLeftDot,
103    TriangleLeftOpenDot,
104    TriangleRight,
105    TriangleRightOpen,
106    TriangleRightDot,
107    TriangleRightOpenDot,
108    TriangleNE,
109    TriangleNEOpen,
110    TriangleNEDot,
111    TriangleNEOpenDot,
112    TriangleSE,
113    TriangleSEOpen,
114    TriangleSEDot,
115    TriangleSEOpenDot,
116    TriangleSW,
117    TriangleSWOpen,
118    TriangleSWDot,
119    TriangleSWOpenDot,
120    TriangleNW,
121    TriangleNWOpen,
122    TriangleNWDot,
123    TriangleNWOpenDot,
124    Pentagon,
125    PentagonOpen,
126    PentagonDot,
127    PentagonOpenDot,
128    Hexagon,
129    HexagonOpen,
130    HexagonDot,
131    HexagonOpenDot,
132    Hexagon2,
133    Hexagon2Open,
134    Hexagon2Dot,
135    Hexagon2OpenDot,
136    Octagon,
137    OctagonOpen,
138    OctagonDot,
139    OctagonOpenDot,
140    Star,
141    StarOpen,
142    StarDot,
143    StarOpenDot,
144    Hexagram,
145    HexagramOpen,
146    HexagramDot,
147    HexagramOpenDot,
148    StarTriangleUp,
149    StarTriangleUpOpen,
150    StarTriangleUpDot,
151    StarTriangleUpOpenDot,
152    StarTriangleDown,
153    StarTriangleDownOpen,
154    StarTriangleDownDot,
155    StarTriangleDownOpenDot,
156    StarSquare,
157    StarSquareOpen,
158    StarSquareDot,
159    StarSquareOpenDot,
160    StarDiamond,
161    StarDiamondOpen,
162    StarDiamondDot,
163    StarDiamondOpenDot,
164    DiamondTall,
165    DiamondTallOpen,
166    DiamondTallDot,
167    DiamondTallOpenDot,
168    DiamondWide,
169    DiamondWideOpen,
170    DiamondWideDot,
171    DiamondWideOpenDot,
172    Hourglass,
173    HourglassOpen,
174    BowTie,
175    BowTieOpen,
176    CircleCross,
177    CircleCrossOpen,
178    CircleX,
179    CircleXOpen,
180    SquareCross,
181    SquareCrossOpen,
182    SquareX,
183    SquareXOpen,
184    DiamondCross,
185    DiamondCrossOpen,
186    DiamondX,
187    DiamondXOpen,
188    CrossThin,
189    CrossThinOpen,
190    XThin,
191    XThinOpen,
192    Asterisk,
193    AsteriskOpen,
194    Hash,
195    HashOpen,
196    HashDot,
197    HashOpenDot,
198    YUp,
199    YUpOpen,
200    YDown,
201    YDownOpen,
202    YLeft,
203    YLeftOpen,
204    YRight,
205    YRightOpen,
206    LineEW,
207    LineEWOpen,
208    LineNS,
209    LineNSOpen,
210    LineNE,
211    LineNEOpen,
212    LineNW,
213    LineNWOpen,
214}