Skip to content

Commit 3103a18

Browse files
committed
feat(theme): anchor axis title/text to their own side per position
1 parent be6aecc commit 3103a18

3 files changed

Lines changed: 71 additions & 33 deletions

File tree

plotnine/themes/theme_gray.py

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,37 @@ def __init__(self, base_size=11, base_family=None):
5656
axis_line_x=element_blank(),
5757
axis_line_y=element_blank(),
5858
axis_text=element_text(size=base_size * 0.8, color="#4D4D4D"),
59-
axis_text_x=element_text(va="top"),
60-
axis_text_x_bottom=element_text(margin=margin(t=fifth_line)),
61-
axis_text_x_top=element_text(margin=margin(b=fifth_line)),
62-
axis_text_y=element_text(ha="right"),
63-
axis_text_y_left=element_text(margin=margin(r=fifth_line)),
64-
axis_text_y_right=element_text(margin=margin(l=fifth_line)),
59+
axis_text_x_bottom=element_text(
60+
va="top", margin=margin(t=fifth_line)
61+
),
62+
axis_text_x_top=element_text(
63+
va="bottom", margin=margin(b=fifth_line)
64+
),
65+
axis_text_y_left=element_text(
66+
ha="right", margin=margin(r=fifth_line)
67+
),
68+
axis_text_y_right=element_text(
69+
ha="left", margin=margin(l=fifth_line)
70+
),
6571
axis_ticks=element_line(color="#333333"),
6672
axis_ticks_length=0,
6773
axis_ticks_length_major=quarter_line,
6874
axis_ticks_length_minor=eighth_line,
6975
axis_ticks_minor=element_blank(),
70-
axis_title_x=element_text(va="bottom", ha="center"),
71-
axis_title_x_bottom=element_text(margin=margin(t=m, unit="fig")),
72-
axis_title_x_top=element_text(margin=margin(b=m, unit="fig")),
73-
axis_title_y=element_text(angle=90, va="center", ha="left"),
74-
axis_title_y_left=element_text(margin=margin(r=m, unit="fig")),
75-
axis_title_y_right=element_text(margin=margin(l=m, unit="fig")),
76+
axis_title_x=element_text(ha="center"),
77+
axis_title_x_bottom=element_text(
78+
va="bottom", margin=margin(t=m, unit="fig")
79+
),
80+
axis_title_x_top=element_text(
81+
va="bottom", margin=margin(b=m, unit="fig")
82+
),
83+
axis_title_y=element_text(angle=90, va="center"),
84+
axis_title_y_left=element_text(
85+
ha="left", margin=margin(r=m, unit="fig")
86+
),
87+
axis_title_y_right=element_text(
88+
ha="left", margin=margin(l=m, unit="fig")
89+
),
7690
dpi=get_option("dpi"),
7791
figure_size=get_option("figure_size"),
7892
# legend, None values are for parameters where the

plotnine/themes/theme_matplotlib.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,33 @@ def __init__(self, rc=None, fname=None, use_defaults=True):
4848
),
4949
aspect_ratio=get_option("aspect_ratio"),
5050
axis_text=element_text(size=base_size * 0.8),
51-
axis_text_x_bottom=element_text(margin=margin(t=2.4, unit="pt")),
52-
axis_text_x_top=element_text(margin=margin(b=2.4, unit="pt")),
53-
axis_text_y_left=element_text(margin=margin(r=2.4, unit="pt")),
54-
axis_text_y_right=element_text(margin=margin(l=2.4, unit="pt")),
55-
axis_title_x=element_text(va="bottom", ha="center"),
56-
axis_title_x_bottom=element_text(margin=margin(t=m, unit="fig")),
57-
axis_title_x_top=element_text(margin=margin(b=m, unit="fig")),
51+
axis_text_x_bottom=element_text(
52+
va="top", margin=margin(t=2.4, unit="pt")
53+
),
54+
axis_text_x_top=element_text(
55+
va="bottom", margin=margin(b=2.4, unit="pt")
56+
),
57+
axis_text_y_left=element_text(
58+
ha="right", margin=margin(r=2.4, unit="pt")
59+
),
60+
axis_text_y_right=element_text(
61+
ha="left", margin=margin(l=2.4, unit="pt")
62+
),
63+
axis_title_x=element_text(ha="center"),
64+
axis_title_x_bottom=element_text(
65+
va="bottom", margin=margin(t=m, unit="fig")
66+
),
67+
axis_title_x_top=element_text(
68+
va="bottom", margin=margin(b=m, unit="fig")
69+
),
5870
axis_line=element_blank(),
59-
axis_title_y=element_text(angle=90, va="center", ha="left"),
60-
axis_title_y_left=element_text(margin=margin(r=m, unit="fig")),
61-
axis_title_y_right=element_text(margin=margin(l=m, unit="fig")),
71+
axis_title_y=element_text(angle=90, va="center"),
72+
axis_title_y_left=element_text(
73+
ha="left", margin=margin(r=m, unit="fig")
74+
),
75+
axis_title_y_right=element_text(
76+
ha="right", margin=margin(l=m, unit="fig")
77+
),
6278
dpi=get_option("dpi"),
6379
figure_size=get_option("figure_size"),
6480
legend_background=element_rect(color="none"),

plotnine/themes/theme_seaborn.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,31 @@ def __init__(
5656
text=element_text(size=base_size, rotation=0, margin={}),
5757
axis_text=element_text(size=base_size * 0.8),
5858
axis_text_x_bottom=element_text(
59-
margin=margin(t=line_margin, unit="pt")
59+
va="top", margin=margin(t=line_margin, unit="pt")
6060
),
6161
axis_text_x_top=element_text(
62-
margin=margin(b=line_margin, unit="pt")
62+
va="bottom", margin=margin(b=line_margin, unit="pt")
6363
),
6464
axis_text_y_left=element_text(
65-
margin=margin(r=line_margin, unit="pt")
65+
ha="right", margin=margin(r=line_margin, unit="pt")
6666
),
6767
axis_text_y_right=element_text(
68-
margin=margin(l=line_margin, unit="pt")
69-
),
70-
axis_title_x=element_text(va="bottom", ha="center"),
71-
axis_title_x_bottom=element_text(margin=margin(t=m, unit="fig")),
72-
axis_title_x_top=element_text(margin=margin(b=m, unit="fig")),
73-
axis_title_y=element_text(angle=90, va="center", ha="left"),
74-
axis_title_y_left=element_text(margin=margin(r=m, unit="fig")),
75-
axis_title_y_right=element_text(margin=margin(l=m, unit="fig")),
68+
ha="left", margin=margin(l=line_margin, unit="pt")
69+
),
70+
axis_title_x=element_text(ha="center"),
71+
axis_title_x_bottom=element_text(
72+
va="bottom", margin=margin(t=m, unit="fig")
73+
),
74+
axis_title_x_top=element_text(
75+
va="bottom", margin=margin(b=m, unit="fig")
76+
),
77+
axis_title_y=element_text(angle=90, va="center"),
78+
axis_title_y_left=element_text(
79+
ha="left", margin=margin(r=m, unit="fig")
80+
),
81+
axis_title_y_right=element_text(
82+
ha="right", margin=margin(l=m, unit="fig")
83+
),
7684
legend_box_margin=0,
7785
legend_box_spacing=m * 3, # figure units
7886
legend_key_spacing_x=6,

0 commit comments

Comments
 (0)