from plotnine import (
ggplot,
aes,
geom_point,
geom_vline,
facet_grid,
labs,
element_rect,
theme,
theme_matplotlib,
theme_set,
)from plotnine.data import mpg
# Set default theme
# matplotlib + the background of 538
theme_set(
theme_matplotlib()+ theme(
=element_rect(fill="#F0F0F0"),
plot_background=element_rect(fill="#F0F0F0"),
panel_background=0.015,
panel_spacing
) )
Vertical line
geom_vline()
draws a vertical line, and is useful as a guide.
mpg.head()
manufacturer | model | displ | year | cyl | trans | drv | cty | hwy | fl | class | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | audi | a4 | 1.8 | 1999 | 4 | auto(l5) | f | 18 | 29 | p | compact |
1 | audi | a4 | 1.8 | 1999 | 4 | manual(m5) | f | 21 | 29 | p | compact |
2 | audi | a4 | 2.0 | 2008 | 4 | manual(m6) | f | 20 | 31 | p | compact |
3 | audi | a4 | 2.0 | 2008 | 4 | auto(av) | f | 21 | 30 | p | compact |
4 | audi | a4 | 2.8 | 1999 | 6 | auto(l5) | f | 16 | 26 | p | compact |
It’s useful to use geom_vline()
with some data, so we start with a basic scatter plot:
(="displ", y="hwy"))
ggplot(mpg, aes(x+ geom_point()
+ labs(x="displacement", y="horsepower")
)
Add a vertical line to the scatter plot:
(="displ", y="hwy"))
ggplot(mpg, aes(x+ geom_point()
+ geom_vline(xintercept=5) # add one vertical line
+ labs(x="displacement", y="horsepower")
)
You can add many vertical lines:
(="displ", y="hwy"))
ggplot(mpg, aes(x+ geom_point()
+ geom_vline(xintercept=[4, 5, 7]) # add many vertical lines using a list
+ labs(x="displacement", y="horsepower")
)
(="displ", y="hwy"))
ggplot(mpg, aes(x+ geom_point()
+ geom_vline(
=[4, 5, 7],
xintercept=["red", "orange", "green"], # add colour
colour=[1, 2, 3], # set line thickness
size="dotted", # set line type
linetype
)+ labs(x="displacement", y="horsepower")
)
Add vertical lines to a facet plot:
Facets with a Vertical Line
# Gallery, lines
(="displ", y="hwy"))
ggplot(mpg, aes(x+ geom_point()
+ geom_vline(xintercept=5, color="brown", size=1) # add a vertical line...
+ facet_grid("drv") # ... to a facet plot
+ labs(x="displacement", y="horsepower")
)