Plot Style¶
Plotting style is set using a ziaplot.styletypes.Style
dataclass.
Individual drawing axes take a style argument to specify the style of the axis
and any data series it contains.
To customize the style, typically start with the base Style and modify its attributes:
sty = zp.styles.Style()
sty.axis.bgcolor = '#d9f2fa'
sty.canvasw = 300
sty.canvash = 300
zp.XyPlot(style=sty)
To use the style for all plots, set the default style using ziaplot.styles.setdefault()
:
zp.styles.setdefault(sty)
Themes¶
A number of predefined styles (or themes) are built-in to Ziaplot. For example, to enable the “Taffy” theme for all plots, use:
zp.styles.setdefault(zp.styles.Taffy)
Default¶
zp.styles.setdefault(zp.styles.Default)
Taffy¶
zp.styles.setdefault(zp.styles.Taffy)
Pastel¶
zp.styles.setdefault(zp.styles.Pastel)
Bold¶
zp.styles.setdefault(zp.styles.Bold)
Dark¶
zp.styles.setdefault(zp.styles.Dark)
Dark Taffy¶
zp.styles.setdefault(zp.styles.DarkTaffy)
Dark Bold¶
zp.styles.setdefault(zp.styles.DarkBold)
Style Dataclass¶
The style dictionary is a set of nested dataclasses.
- class ziaplot.styletypes.Style(series: ~ziaplot.styletypes.SeriesStyle = <factory>, axis: ~ziaplot.styletypes.AxisStyle = <factory>, tick: ~ziaplot.styletypes.TickStyle = <factory>, legend: ~ziaplot.styletypes.LegendStyle = <factory>, pie: ~ziaplot.styletypes.PieStyle = <factory>, polar: ~ziaplot.styletypes.PolarStyle = <factory>, smith: ~ziaplot.smithstyle.SmithStyle = <factory>, canvasw: float = 600, canvash: float = 400, bgcolor: str = 'none', colorcycle: ~ziaplot.colors.ColorCycle = <factory>)¶
Main Ziaplot Style
- Parameters:
series – Style for Series (lines, markers)
axis – Style for the axis
tick – Style for tick marks and labels
legend – Style for plot legend
pie – Style for pie charts
polar – Style for polar plots
smith – Style for Smith charts
canvasw – Width of full image
canvash – Height of full image
bgcolor – Color of background
colorcycle – Automatic colors for multiple lines
- class ziaplot.styletypes.SeriesStyle(line: ~ziaplot.styletypes.LineStyle = <factory>, border: ~ziaplot.styletypes.BorderStyle = <factory>, marker: ~ziaplot.styletypes.MarkerStyle = <factory>, text: ~ziaplot.styletypes.TextStyle = <factory>, yerror: ~ziaplot.styletypes.ErrorBarStyle = <factory>, xerror: ~ziaplot.styletypes.ErrorBarStyle = <factory>, fillcolor: str | None = None, fillalpha: float = 0.3, colorbar: ~ziaplot.styletypes.ColorBarStyle = <factory>)¶
Style for generic data series
- Parameters:
line – Style of lines
marker – Style of markers
text – Style of text
yerror – Style of Y-error bars
xerror – Style of X-error bars
fillcolor – Style for filled LineFill series
fillalpha – Transparency factor (0-1) for LineFill series
- class ziaplot.styletypes.LineStyle(color: str = 'undefined', stroke: Literal['-', ':', 'dotted', '--', 'dashed', '-.', '.-', 'dashdot'] | str = '-', width: float = 2.0)¶
Line Style
- Parameters:
color – Line color
stroke – Line style, name or SVG dash-array specification
width – Line width
- class ziaplot.styletypes.MarkerStyle(shape: Literal['round', 'o', 'square', 's', 'triangle', '^', 'triangled', 'v', 'larrow', '<', 'arrow', '>', '+', 'x', '-', '|', 'undefined', None] | None = None, color: str = 'undefined', strokecolor: str = 'black', strokewidth: float = 1, radius: float = 7.0, orient: bool = False)¶
Line Marker Style
- Parameters:
shape – Shape of marker
color – Marker color
strokecolor – Color for border
strokewidth – Width of border
radius – Pixel radius (or half-width) of marker
orient – Orient the marker along the line (ie for arrowheads)
- class ziaplot.styletypes.TextStyle(font: str = 'sans', size: float = 16, color: str = 'black')¶
Text Style
- Parameters:
font – Font family
size – Font point size
color – Font color
- class ziaplot.styletypes.ErrorBarStyle(marker: Literal['round', 'o', 'square', 's', 'triangle', '^', 'triangled', 'v', 'larrow', '<', 'arrow', '>', '+', 'x', '-', '|', 'undefined', None] = '-', stroke: Literal['-', ':', 'dotted', '--', 'dashed', '-.', '.-', 'dashdot'] | str = '-', length: float = 7.0, width: float = 2.0)¶
Style for Error Bars
- Parameters:
marker – Marker shape
stroke – Stroke/linestyle
length – Length of errorbar caps
width – Width of line between errorbar caps
- class ziaplot.styletypes.AxisStyle(xname: ~ziaplot.styletypes.TextStyle = <factory>, yname: ~ziaplot.styletypes.TextStyle = <factory>, title: ~ziaplot.styletypes.TextStyle = <factory>, color: str = 'black', bgcolor: str = '#F6F6F6', xgrid: bool = True, ygrid: bool = True, framelinewidth: float = 2.0, fullbox: bool = False, gridcolor: str = 'lightgray', gridlinewidth: float = 1.0, gridstroke: ~typing.Literal['-', ':', 'dotted', '--', 'dashed', '-.', '.-', 'dashdot'] | str = 'dashed', xdatapad: float = 0.2, ydatapad: float = 0.2)¶
Style for X/Y Axis
- Parameters:
xname – Text style for x-axis label
yname – Text style for y-axis label
title – Text style for axis title
color – Color of axis lines and ticks
bgcolor – Fill color for axis background
xgrid – Show grid along x direction
ygrid – Show grid along y direction
framelinewidth – Width of axis frame/border
fullbox – Draw full rectangle around box
gridcolor – Color for grid lines
gridlinewidth – Width of grid lines
gridstroke – Line style or SVG dash-array specification for grid
xdatapad – Fraction of a tick to expand the data range
ydatapad – Fraction of a tick to expand the data range
- class ziaplot.styletypes.TickStyle(length: float = 9.0, width: float = 2.0, text: ~ziaplot.styletypes.TextStyle = <factory>, textofst: float = 4, xstrformat: str = 'g', ystrformat: str = 'g', xminordivisions: int = 0, yminordivisions: int = 0, xlogdivisions: int = 10, ylogdivisions: int = 10, minorwidth: float = 1.0, minorlength: float = 5.0)¶
Style for tick marks
- Parameters:
length – Length of tick marks
width – Line width of tick marks
text – Text style for tick labels
textofst – Distance between tick and text
xstrformat – String formatter for x tick labels
ystrformat – String formatter for y tick labels
xminordivisions – Number of minor tick divisions between labeled ticks
yminordivisions – Number of minor tick divisions between labeled ticks
xlogdivisions – Number of minor divisions for logscale plots (2, 5, or 10)
ylogdivisions – Number of minor divisions for logscale plots (2, 5, or 10)
minorwidth – Line width of minor ticks
minorlength – Length of minor ticks
- class ziaplot.styletypes.LegendStyle(text: ~ziaplot.styletypes.TextStyle = <factory>, linespacing: float = 1.2, border: str = 'black', fill: str = 'none', pad: float = 10, margin: float = 4)¶
Style for plot legend
- Parameters:
text – Text style
linespacing – Spacing between lines as multiplier of font size
border – Color for legend box border
fill – Fill color for legend box
pad – Padding between axis and legend box
margin – Distance from legend box to legend contents
- class ziaplot.styletypes.PolarStyle(rlabeltheta: float = 0, edgepad: float = 10, labelpad: float = 4, title: ~ziaplot.styletypes.TextStyle = <factory>)¶
Style for Polar plots
- Parameters:
rlabeltheta – Angle (degrees) for drawing r-value labels
edgepad – Distance between frame and canvas border
labelpad – Distance between frame and theta labels
title – Text style for title
- class ziaplot.styletypes.PieStyle(legend: ~ziaplot.styletypes.LegendStyle = <factory>, edgepad: float = 10, extrude: float = 20, title: ~ziaplot.styletypes.TextStyle = <factory>, label: ~ziaplot.styletypes.TextStyle = <factory>, labelpad: float = 4)¶
Style for pie charts
- Parameters:
legend – Legend style
edgepad – Distance from canvas edge to pie
extrude – Distance to extrude slices
title – Text style for title
label – Text style for wedge labels
labelpad – Distance from pie to wedge label
- class ziaplot.styletypes.SmithStyle(grid: dict[str, SmithGrid] = <factory>, majorcolor: str = '#DDDDDD', majorwidth: float = 1.2, minorcolor: str = '#E8E8E8', minorwidth: float = 1.0)¶
Style for Smith Charts
- grid¶
Dictionary of grid specifications. [coarse, medium, fine, extrafine]
- Type:
dict[str, SmithGrid]
- majorcolor¶
Color for major grid lines
- Type:
str
- majorwidth¶
Stroke width for major grid lines
- Type:
float
- minorcolor¶
Color for minor grid lines
- Type:
str
- minorwidth¶
Stroke width for minor grid lines
- Type:
float