Search code examples
graphplotlyheatmapsmoothing

Smoothen heatmap in plotly


I wanted to create a heatmap of a probability density matrix using plotly.

import numpy as np
from plotly.offline import download_plotlyjs, init_notebook_mode, plot
import plotly.graph_objs as go

probability_matrix = np.loadtxt("/path/to/file")
trace = go.Heatmap(z = probability_matrix)
data=[trace]
plot(data, filename='basic-heatmap')

This gives me an image like this:

basic-heatmap

I want to smoothen the color of the squares so that the transition between adjacent squares in the image are somewhat "smoother". I was wondering if there is a way of doing that, without manually resizing the matrix using interpolation.


Solution

  • You can use the zsmooth argument which can take three values ('fast', 'best', or False). For example:

    data = [go.Heatmap(z=[[1, 20, 30],
                          [20, 1, 60],
                          [30, 60, 1]],
                       zsmooth = 'best')]
    iplot(data)
    

    Will give you the following smooth heatmap:

    enter image description here