In [ ]:
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from matplotlib2tikz import save as tikz_save
import matplotlib2tikz
import sys

In [2]:
sys.version_info


Out[2]:
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

In [3]:
mpl.__version__


Out[3]:
'1.5.1'

In [4]:
sns.__version__


Out[4]:
'0.7.0'

In [5]:
matplotlib2tikz.__version__


Out[5]:
'0.6.11'

In [ ]:
df = pd.DataFrame.from_csv("test.csv", sep=',')

sns.set('paper', 'white',
        rc={'font.size': 10, 'axes.labelsize': 10,
            'legend.fontsize': 8, 'axes.titlesize': 10,
            'xtick.labelsize': 8,'ytick.labelsize': 8, 
            "pgf.rcfonts": False,
           })
plt.rc('font', **{'family': 'serif', 'serif': ['Times']})
plt.rc('text', usetex=True)
fig, ax = plt.subplots(figsize=(6,6))
ax = sns.heatmap(df, linewidths=.5, ax=ax, cbar=False)
fig.savefig('heatmap_nocbar.pgf')

In [ ]:
df = pd.DataFrame.from_csv("test.csv", sep=',')

sns.set('paper', 'white',
        rc={'font.size': 10, 'axes.labelsize': 10,
            'legend.fontsize': 8, 'axes.titlesize': 10,
            'xtick.labelsize': 8,'ytick.labelsize': 8, 
            "pgf.rcfonts": False,
           })
plt.rc('font', **{'family': 'serif', 'serif': ['Times']})
plt.rc('text', usetex=True)
fig, ax = plt.subplots()
ax = sns.heatmap(df, linewidths=.5, ax=ax, )
tikz_save('colorbar.tex', figure=fig, strict=True)

remove unnecessary data from colorbar.tex


In [ ]:
writeswitch = ['\\begin{axis}[\n', 'colorbar,\n', ']\n', '\\end{axis}\n']
# open original file
with open('./colorbar.tex', 'r') as f:
    data = f.readlines()
# get the indices in the data to delete the unnecessary lines 
indices = map(lambda element: data.index(element) if element in data else None, writeswitch)
# generate list with line numbers to keep
data_indices = range(0, indices[0]+1) \
    + range(indices[1], indices[2]+1) + range(indices[3], len(data))
output_data = [data[i] for i in data_indices]
# add the hide axis line after \begin{axis}
output_data.insert(data_indices[0], 'hide axis,\n')
output_data = ''.join(output_data)
# write out to new file
with open('./colorbar_final.tex', 'w') as f:
    f.write(output_data)