Skip to content

Commit fc32f14

Browse files
committed
added font size control.
1 parent 2b794bf commit fc32f14

File tree

2 files changed

+35
-17
lines changed

2 files changed

+35
-17
lines changed

src/pyplot_module.f90

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -163,20 +163,30 @@ end subroutine add_str
163163
!
164164
! SOURCE
165165

166-
subroutine initialize(me,grid,xlabel,ylabel,title,legend,use_numpy,figsize)
166+
subroutine initialize(me,grid,xlabel,ylabel,title,legend,use_numpy,figsize,&
167+
font_size,axes_labelsize,xtick_labelsize,ytick_labelsize,legend_fontsize)
167168

168169
implicit none
169170

170-
class(pyplot),intent(inout) :: me
171-
logical,intent(in),optional :: grid
172-
character(len=*),intent(in),optional :: xlabel
173-
character(len=*),intent(in),optional :: ylabel
174-
character(len=*),intent(in),optional :: title
175-
logical,intent(in),optional :: legend
176-
logical,intent(in),optional :: use_numpy
171+
class(pyplot),intent(inout) :: me
172+
logical,intent(in),optional :: grid
173+
character(len=*),intent(in),optional :: xlabel
174+
character(len=*),intent(in),optional :: ylabel
175+
character(len=*),intent(in),optional :: title
176+
logical,intent(in),optional :: legend
177+
logical,intent(in),optional :: use_numpy
177178
integer,dimension(2),intent(in),optional :: figsize
179+
integer,intent(in),optional :: font_size
180+
integer,intent(in),optional :: axes_labelsize
181+
integer,intent(in),optional :: xtick_labelsize
182+
integer,intent(in),optional :: ytick_labelsize
183+
integer,intent(in),optional :: legend_fontsize
178184

179-
character(len=max_int_len) :: width_str, height_str
185+
character(len=max_int_len) :: width_str, height_str,font_size_str,&
186+
axes_labelsize_str,xtick_labelsize_str,&
187+
ytick_labelsize_str,legend_fontsize_str
188+
189+
character(len=*),parameter :: default_font_size_str = '10' !the default font size for plots
180190

181191
call me%destroy()
182192

@@ -194,6 +204,11 @@ subroutine initialize(me,grid,xlabel,ylabel,title,legend,use_numpy,figsize)
194204
call integer_to_string(figsize(1), width_str)
195205
call integer_to_string(figsize(2), height_str)
196206
end if
207+
call optional_int_to_string(font_size, font_size_str, default_font_size_str)
208+
call optional_int_to_string(axes_labelsize, axes_labelsize_str, default_font_size_str)
209+
call optional_int_to_string(xtick_labelsize,xtick_labelsize_str,default_font_size_str)
210+
call optional_int_to_string(ytick_labelsize,ytick_labelsize_str,default_font_size_str)
211+
call optional_int_to_string(legend_fontsize,legend_fontsize_str,default_font_size_str)
197212

198213
me%str = ''
199214

@@ -205,14 +220,12 @@ subroutine initialize(me,grid,xlabel,ylabel,title,legend,use_numpy,figsize)
205220
if (me%use_numpy) call me%add_str('import numpy as np')
206221
call me%add_str('')
207222

208-
!.... these also need to be optional user inputs ....
209-
210-
call me%add_str('matplotlib.rcParams["font.size"] = 10')
211223
call me%add_str('matplotlib.rcParams["font.family"] = "Serif"')
212-
call me%add_str('matplotlib.rcParams["axes.labelsize"] = 10')
213-
call me%add_str('matplotlib.rcParams["xtick.labelsize"] = 10')
214-
call me%add_str('matplotlib.rcParams["ytick.labelsize"] = 10')
215-
call me%add_str('matplotlib.rcParams["legend.fontsize"] = 10')
224+
call me%add_str('matplotlib.rcParams["font.size"] = '//trim(font_size_str))
225+
call me%add_str('matplotlib.rcParams["axes.labelsize"] = '//trim(axes_labelsize_str))
226+
call me%add_str('matplotlib.rcParams["xtick.labelsize"] = '//trim(xtick_labelsize_str))
227+
call me%add_str('matplotlib.rcParams["ytick.labelsize"] = '//trim(ytick_labelsize_str))
228+
call me%add_str('matplotlib.rcParams["legend.fontsize"] = '//trim(legend_fontsize_str))
216229

217230
call me%add_str('')
218231

src/test.f90

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@ program test
4040
!bar chart:
4141
tx = 0.1_wp !for bar width
4242
call plt%initialize(grid=.true.,xlabel='angle (rad)',&
43-
title='bar test',legend=.true.,figsize=[20,5])
43+
title='bar test',legend=.true.,figsize=[20,5],&
44+
font_size = 20,&
45+
axes_labelsize = 20,&
46+
xtick_labelsize = 20,&
47+
ytick_labelsize = 20,&
48+
legend_fontsize = 20 )
4449
call plt%add_bar(left=x,height=sx,width=tx,label='$\sin (x)$',color='r')
4550
call plt%savefig('bartest.png', pyfile='bartest.py')
4651

0 commit comments

Comments
 (0)