Solution to an RDKit issue How do I save the figure output by SimilarityMaps? #2585.
Save the figure of SimilarityMaps in the proper way
from rdkit import Chem
from rdkit.Chem.Draw import SimilarityMaps
from rdkit.Chem import AllChem
import matplotlib.pyplot as plt
smi = 'CC(C)CC1=CC=C(C=C1)C(C)C(=O)O'
mol = Chem.MolFromSmiles(smi)
AllChem.ComputeGasteigerCharges(mol)
contribs = [float(mol.GetAtomWithIdx(i).GetProp('_GasteigerCharge')) for i in range(mol.GetNumAtoms())]
fig = plt.figure(constrained_layout=True,
dpi=600)
ret = SimilarityMaps.GetSimilarityMapFromWeights(mol, contribs, colorMap='jet', contourLines=30)
handlelim=[0, 2.5]
plt.xlim(handlelim); plt.ylim(handlelim)
ax = ret.axes[0]
from mpl_toolkits.axes_grid1 import make_axes_locatable
divider = make_axes_locatable(ax)
ax_cb = divider.new_horizontal(size="2%", pad=0.05)
ret.add_axes(ax_cb)
ret.colorbar(ax.get_images()[0],cax=ax_cb)
# ret.colorbar(ax.get_images()[0])
plt.savefig('ibuprofenGasteigerCharge.png')
print('figure type: ',end=' ')
print(type(ret))
figure type: <class 'matplotlib.figure.Figure'>
ret