#!/usr/bin/env python # coding: utf-8 # # TL;DR # # Solution to an RDKit issue [How do I save the figure output by SimilarityMaps? #2585](https://github.com/rdkit/rdkit/issues/2585). # # **Save the figure of SimilarityMaps in the proper way** # In[1]: 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)) # In[2]: ret