# Style Customization

When plotting, ezel uses a lot of aesthetic parameters.

Even rendering a simple scatter plot requires

* marker size
* marker shape
* marker color
* background color
* x axis label size
* x axis label text
* x axis label color
* ..

For a minimal API, they are all optional and structured into `MarkerOpts`, `AxisOpts`, etc.

```rust
struct Cartesian2 {
    marker_opts: Option<MarkerOpts>,
}

let mut plot = ezel::Cartesian2::new();
plot.style.marker = MarkerOpts::default();
plot.style.marker.size = Some(10.0);
```

When unspecified, the value is provided by the theme.

### Theme

A theme is a collection of default style configurations.

You can create a new theme or use one of built-in themes.

```rust
let mut theme: Theme = ezel::theme::MATPLOTLIB.clone();
theme.marker.size = Some(12.0);  // customize the matplotlib theme
```

\[screenshot of themes]


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ezel.rustic.dev/optimization/style-customization.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
