Figure title with several colors in matplotlib
One can also use figtext()
command of matplotlib, like below,
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1)
for i in range(4):
plt.subplot(2,2,i+1)
plt.plot(x, np.sin((i+1)*x),'r')
plt.plot(x, np.cos(4*x/(i+1)),'b')
plt.title('(i+1)='+str(i+1))
plt.figtext(0.47, 0.96, "Case A", fontsize='large', color='r', ha ='right')
plt.figtext(0.53, 0.96, "Case B", fontsize='large', color='b', ha ='left')
plt.figtext(0.50, 0.96, ' vs ', fontsize='large', color='k', ha ='center')
plt.show()
The following snippet seems to work.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1);
y = np.sin(x)
fig1 = plt.figure(1)
fig1.text(0.45, 0.95, "Case A", ha="center", va="bottom", size="medium",color="red")
fig1.text(0.5, 0.95, "&", ha="center", va="bottom", size="medium")
fig1.text(0.55,0.95,"Case B", ha="center", va="bottom", size="medium",color="blue")
plt.plot(x, y)
plt.show()
As far as I can see the title generated by matplotlib title function only contains one text object and hence can only have one font color. This is the reason for making multiple text elements on the figure.