I have made a heatmap in Seaborn, and I have a corresponding horizontal colorbar. I've added a title to the colorbar, however, the title appears below the colorbar when I actually want it above. Is there some why I can change this? And is it possible to change the font size of the title and the size of the labels on the colorbar?
fig, ax = plt.subplots(figsize=(30,12))
graph = sns.heatmap(df_pivot, cmap="Blues", linecolor="white", linewidths=0.1,
cbar_kws={"orientation": "horizontal", "shrink":0.40, "aspect":40, "label": "Number of accidents"})
ax.set_title("Number of traffic accidents per day & hour combination",
fontsize=30, fontweight="bold")
from matplotlib import rcParams
rcParams['axes.titlepad'] = 70 # Space between the title and graph
locs, labels = plt.yticks() # Rotating row labels
plt.setp(labels, rotation=0) # Rotating row labels
ax.xaxis.tick_top() # x axis on top
ax.xaxis.set_label_position('top')
graph.tick_params(axis='both',labelsize=15) # Tick label size
graph
This is what it looks like so far. I want the "Number of accidents" title to be ABOVE the colorbar, but BELOW the heatmap. and I want the colorbar to be as wide as the heatmap.
vmin, vmax: Values to anchor the colormap, otherwise they are inferred from the data and other keyword arguments. cmap: The mapping from data values to color space. center: The value at which to center the colormap when plotting divergent data.
You can customize the colors in your heatmap with the cmap parameter of the heatmap() function in seaborn. The following examples show the appearences of different sequential color palettes.
Plot your colorbar in separately plot like in this example. For more info read the comments:
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
# set height ratios of heatmap and coresponding colorbar
# hspace shows space between plots
# adjust hspace to put your title of colorbar correctly
grid_kws = {"height_ratios": (.9, .05), "hspace": .15}
f, (ax, cbar_ax) = plt.subplots(2, gridspec_kw=grid_kws, figsize=(30,12))
ax = sns.heatmap(flights, ax=ax,
cbar_ax=cbar_ax,
cbar_kws={"orientation": "horizontal","label": "Number of accidents"})
# set title and set font of title
ax.set_title("Number of traffic accidents per day & hour combination",
fontsize=30, fontweight="bold")
# set font size of colorbar labels
cbar_ax.tick_params(labelsize=25)
plt.show()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With