Changing fontsize in python subplots
Solution 1
Here are the changes I made to the last bit of your code:
fig = plt.figure(figsize=(6,6)) # 6x6 image
ax = plt.gca() #SubplotZero(fig,111,) #Plot arrows over figure
#fig.add_subplot(ax) # Plot arrows over figure
# Plot both nulcines on same graph
plt.axis((0,1,0,1))
ax.set_title('v = 1',fontweight="bold", size=20) # Title
ax.set_ylabel('Active Wee1', fontsize = 20.0) # Y label
ax.set_xlabel('Active Cdc2-cyclin B', fontsize = 20) # X label
plt.plot (NulclineXX,Nulclinevalues, label = " Cdc2 nulcline",c = 'r')
plt.plot (Nulclinevalues,NulclineYY, label = "Wee1 nulcline",c = '#FF8C00')
ax.quiver(x,y,X,Y,M) # plot quiver plot on graph
ax.grid(True) # Show major ticks
ax.legend(handletextpad=0,loc='upper right') # Plot legend
plt.show() # Show plot
I changed the way you defined ax, and removed the call adding it to the figure. (I also did 2 other changes that you probably don't need - for some reason my installation didn't like the linewidth instructions when I tried to show it, so I took them out - it looks like something wrong with my installation).
Solution 2
Just use
fig, ax = plt.subplots(figsize=(6,6))
instead of:
fig = plt.figure(figsize=(6,6)) # 6x6 image
ax = SubplotZero(fig,111,) #Plot arrows over figure
fig.add_subplot(ax) # Plot arrows over figure
BTW nice plot!
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on July 21, 2022Comments
-
Admin almost 2 years
I have made a phase plot of a bistable stable, with the nulclines on the main graph and have added a subplot with the trajectories overlaying it. However, no matter what I try, I cannot seem to get the x and y labels to increase in font size to 20.
Any help would be greatly appreciated.
Although there are similar questions, the answers to said queries don't seem to apply to this particular problem.
Thanks again!
import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt from mpl_toolkits.axes_grid.axislines import SubplotZero from matplotlib import pylab from pylab import linspace from numpy import meshgrid from numpy import hypot a1 = 1.0 #(Rate constant) g1 = 4.0 # Hill number for cdc2 b1 = 200.0 # Rate Constant k1 = 30.0 #Michaelis Constant v =1 #coefficient that reflects the strangth of the influence of Wee1 on Cdc2 a2 = 1.0# Rate Constant g2 = 4.0 #Hill number for Wee1 b2 = 10.0 # Rate Constant k2 = 1.0# Michaelis constant # Function for calculating the phase plot def Function(u,t=0,mu=.1): x1 = u[0] y1 = u[1] dv = (a2* (1.0 - y1) - (b2 * y1 * x1**g2) /(k2 + (x1**g2))) # Model of Cdc2 dx = (a1* (1.0 - x1) - (b1 * x1 * ((v * y1)**g1)) / (k1 + ((v*y1) **g1))) # Model of Wee1 return (dx,dv) t = linspace(0,1,1) #Return list from 0 to 1 in 25 intervals u0 = np.array([1,1]) # Creates array for odeint function mu = [1,10] #call mu for 2 for m in mu:#Get u (differentiation function ) u = odeint(Function,u0,t,args=(m,)) # ax.plot(u[0:,0],u[0:,1]) x = linspace(0,1,17) #Creates values for x y = linspace(0,1,18)#Creates values for y to plot x,y = meshgrid(x,y)# creates a grid of x by y X,Y = Function([x,y])# Applies funciton to grid M = (hypot(X,Y))# Get hypotenuse of X by Y X,Y = X/M, Y/M# Calculate length(strength) of arrows #Calculate Nulclines----------------------------------------------------------- Nulclinevalues = np.arange(0, 1+0.001, 0.001)#Calulate values to set nulcineto NulclineXX = []# set to an array NulclineYY = []#set to an array # Following 2 formulas show the calculation fo the nullclines def calcnulclineyy(xx1): oa2 = 1.0#RAte constant og2 = 4.0 #Hill number for Wee1 ob2 = 10.0#Rate constant ok2 = 1.0#Michaelis constant YY = (oa2*((xx1)**og2) + ok2) / (oa2*((xx1**og2)+ok2)+(ob2*(xx1**og2))) return YY def calcnulclinexx(yy1): oa1 = 1.0 #Rate constant og1 = 4.0 # Hill number for cdc2 ob1 = 200.0 #Rate constant ok1 = 30.0#Michaelis constant ov = 1##coefficient that reflects the strength of the influence of Wee1 on Cdc2 og2 = 4.0 #Hill number for Wee1 XX = (oa1*(ok1+(ov*yy1)**og2)) / (oa1*(ok1+(ov*yy1)**og1)+ob1*(ov*yy1)**og1) return XX for YY in Nulclinevalues: # print Y NulclineXX.append(calcnulclinexx(YY)) for XX in Nulclinevalues: #Print X NulclineYY.append(calcnulclineyy(XX)) fig = plt.figure(figsize=(6,6)) # 6x6 image ax = SubplotZero(fig,111,) #Plot arrows over figure fig.add_subplot(ax) # Plot arrows over figure # Plot both nulcines on same graph plt.axis((0,1,0,1)) ax.set_title('v = 1',fontweight="bold", size=20) # Title ax.set_ylabel('Active Wee1', fontsize = 20.0) # Y label ax.set_xlabel('Active Cdc2-cyclin B', fontsize = 20) # X label plt.plot (NulclineXX,Nulclinevalues, label = " Cdc2 nulcline",c = 'r', linewidth = '2') plt.plot (Nulclinevalues,NulclineYY, label = "Wee1 nulcline",c = '#FF8C00', linewidth = '2') ax.quiver(x,y,X,Y,M) # plot quiver plot on graph ax.grid(True) # Show major ticks ax.legend(handletextpad=0,loc='upper right') # Plot legend plt.show() # Show plot