messy heatmap when plotting











up vote
0
down vote

favorite












I have a dataframe,df, with 29 rows and 92 columns with the rows being datetime Index and float as the column names representing the frequency of each of the column names day by day. I intend to plot a heatmap but i am getting a scattered plot. An example of dataframe looks like:



       Index                        0.0     1.0     2.0..... 91
2017-08-03 00:00:00 10 0 10 0
2017-08-04 00:00:00 20 60 1470 20
2017-08-05 00:00:00 0 58 0 24
2017-08-06 00:00:00 0 0 480 24
2017-09-07 00:00:00 0 0 0 25
: : : : :
: : : : :
2017-09-30 00:00:00


This is heatmap function that was called:



def heatmap(data, row_labels, col_labels, ax=None,
cbar_kw={}, cbarlabel="", **kwargs):
"""
Create a heatmap from a numpy array and two lists of labels.

Arguments:
data : A 2D numpy array of shape (N,M)
row_labels : A list or array of length N with the labels
for the rows
col_labels : A list or array of length M with the labels
for the columns
Optional arguments:
ax : A matplotlib.axes.Axes instance to which the heatmap
is plotted. If not provided, use current axes or
create a new one.
cbar_kw : A dictionary with arguments to
:meth:`matplotlib.Figure.colorbar`.
cbarlabel : The label for the colorbar
All other arguments are directly passed on to the imshow call.
"""

if not ax:
ax = plt.gca()

# Plot the heatmap
im = ax.imshow(data, **kwargs)

# Create colorbar
cbar = ax.figure.colorbar(im, ax=ax, **cbar_kw)
cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom")

# We want to show all ticks...
ax.set_xticks(np.arange(data.shape[1]))
ax.set_yticks(np.arange(data.shape[0]))
# ... and label them with the respective list entries.
ax.set_xticklabels(col_labels)
ax.set_yticklabels(row_labels)

# Let the horizontal axes labeling appear on top.
ax.tick_params(top=True, bottom=False,
labeltop=True, labelbottom=False)

# Rotate the tick labels and set their alignment.
plt.setp(ax.get_xticklabels(), rotation=-30, ha="right",
rotation_mode="anchor")

# Turn spines off and create white grid.
for edge, spine in ax.spines.items():
spine.set_visible(False)

ax.set_xticks(np.arange(data.shape[1]+1)-.5, minor=True)
ax.set_yticks(np.arange(data.shape[0]+1)-.5, minor=True)
ax.grid(which="minor", color="w", linestyle='-', linewidth=3)
ax.tick_params(which="minor", bottom=False, left=False)

return im, cbar


def annotate_heatmap(im, data=None, valfmt="{x:.2f}",
textcolors=["black", "white"],
threshold=None, **textkw):
"""
A function to annotate a heatmap.

Arguments:
im : The AxesImage to be labeled.
Optional arguments:
data : Data used to annotate. If None, the image's data is used.
valfmt : The format of the annotations inside the heatmap.
This should either use the string format method, e.g.
"$ {x:.2f}", or be a :class:`matplotlib.ticker.Formatter`.
textcolors : A list or array of two color specifications. The first is
used for values below a threshold, the second for those
above.
threshold : Value in data units according to which the colors from
textcolors are applied. If None (the default) uses the
middle of the colormap as separation.

Further arguments are passed on to the created text labels.
"""

if not isinstance(data, (list, np.ndarray)):
data = im.get_array()

# Normalize the threshold to the images color range.
if threshold is not None:
threshold = im.norm(threshold)
else:
threshold = im.norm(data.max())/2.

# Set default alignment to center, but allow it to be
# overwritten by textkw.
kw = dict(horizontalalignment="center",
verticalalignment="center")
kw.update(textkw)

# Get the formatter in case a string is supplied
if isinstance(valfmt, str):
valfmt = matplotlib.ticker.StrMethodFormatter(valfmt)

# Loop over the data and create a `Text` for each "pixel".
# Change the text's color depending on the data.
texts =
for i in range(data.shape[0]):
for j in range(data.shape[1]):
kw.update(color=textcolors[im.norm(data[i, j]) > threshold])
text = im.axes.text(j, i, valfmt(data[i, j], None), **kw)
texts.append(text)

return texts


So running the function with its argument, I used:



Rownames=list(df.index.values)
ColumnNames=list(df.columns.values)
fig, ax = plt.subplots()

im, cbar = heatmap(df, Rownames, ColumnNames, ax=ax,
cmap="YlGn", cbarlabel="frequency [freq/day]")
texts = annotate_heatmap(im, valfmt="{x:.1f} ")

fig.tight_layout()
plt.show()


However i get this :
the heatmap generated










share|improve this question






















  • The code give for me a error TypeError: Image data cannot be converted to float, which originates from the line ax.imshow(data, **kwargs). Are you sure that there was no mistake during pasting it here?
    – gehbiszumeis
    Nov 7 at 11:53










  • Yes,there was no mistake. Thanks
    – Bode
    Nov 7 at 12:06










  • You obviously have too much text in your figure, such that the heatmap is not seen any more. So the question is, do you really want to show each cell's value and all row-/column labels? If so, you will need to make the figure about a meter wide. If not, you might want to show only some of the values at the axes. If you then want to stick to the example you could set the rest to empty strings.
    – ImportanceOfBeingErnest
    Nov 8 at 2:25










  • Thanks for your response. I intend to show each cell's value and all row-/column labels,so increasing the size worked using ''fig, ax = plt.subplots(1, 1, figsize=(40,40))''
    – Bode
    Nov 8 at 3:23










  • It feels too large at one sight.Is there a way i can show the heatmap in a gliding manner
    – Bode
    Nov 8 at 3:35















up vote
0
down vote

favorite












I have a dataframe,df, with 29 rows and 92 columns with the rows being datetime Index and float as the column names representing the frequency of each of the column names day by day. I intend to plot a heatmap but i am getting a scattered plot. An example of dataframe looks like:



       Index                        0.0     1.0     2.0..... 91
2017-08-03 00:00:00 10 0 10 0
2017-08-04 00:00:00 20 60 1470 20
2017-08-05 00:00:00 0 58 0 24
2017-08-06 00:00:00 0 0 480 24
2017-09-07 00:00:00 0 0 0 25
: : : : :
: : : : :
2017-09-30 00:00:00


This is heatmap function that was called:



def heatmap(data, row_labels, col_labels, ax=None,
cbar_kw={}, cbarlabel="", **kwargs):
"""
Create a heatmap from a numpy array and two lists of labels.

Arguments:
data : A 2D numpy array of shape (N,M)
row_labels : A list or array of length N with the labels
for the rows
col_labels : A list or array of length M with the labels
for the columns
Optional arguments:
ax : A matplotlib.axes.Axes instance to which the heatmap
is plotted. If not provided, use current axes or
create a new one.
cbar_kw : A dictionary with arguments to
:meth:`matplotlib.Figure.colorbar`.
cbarlabel : The label for the colorbar
All other arguments are directly passed on to the imshow call.
"""

if not ax:
ax = plt.gca()

# Plot the heatmap
im = ax.imshow(data, **kwargs)

# Create colorbar
cbar = ax.figure.colorbar(im, ax=ax, **cbar_kw)
cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom")

# We want to show all ticks...
ax.set_xticks(np.arange(data.shape[1]))
ax.set_yticks(np.arange(data.shape[0]))
# ... and label them with the respective list entries.
ax.set_xticklabels(col_labels)
ax.set_yticklabels(row_labels)

# Let the horizontal axes labeling appear on top.
ax.tick_params(top=True, bottom=False,
labeltop=True, labelbottom=False)

# Rotate the tick labels and set their alignment.
plt.setp(ax.get_xticklabels(), rotation=-30, ha="right",
rotation_mode="anchor")

# Turn spines off and create white grid.
for edge, spine in ax.spines.items():
spine.set_visible(False)

ax.set_xticks(np.arange(data.shape[1]+1)-.5, minor=True)
ax.set_yticks(np.arange(data.shape[0]+1)-.5, minor=True)
ax.grid(which="minor", color="w", linestyle='-', linewidth=3)
ax.tick_params(which="minor", bottom=False, left=False)

return im, cbar


def annotate_heatmap(im, data=None, valfmt="{x:.2f}",
textcolors=["black", "white"],
threshold=None, **textkw):
"""
A function to annotate a heatmap.

Arguments:
im : The AxesImage to be labeled.
Optional arguments:
data : Data used to annotate. If None, the image's data is used.
valfmt : The format of the annotations inside the heatmap.
This should either use the string format method, e.g.
"$ {x:.2f}", or be a :class:`matplotlib.ticker.Formatter`.
textcolors : A list or array of two color specifications. The first is
used for values below a threshold, the second for those
above.
threshold : Value in data units according to which the colors from
textcolors are applied. If None (the default) uses the
middle of the colormap as separation.

Further arguments are passed on to the created text labels.
"""

if not isinstance(data, (list, np.ndarray)):
data = im.get_array()

# Normalize the threshold to the images color range.
if threshold is not None:
threshold = im.norm(threshold)
else:
threshold = im.norm(data.max())/2.

# Set default alignment to center, but allow it to be
# overwritten by textkw.
kw = dict(horizontalalignment="center",
verticalalignment="center")
kw.update(textkw)

# Get the formatter in case a string is supplied
if isinstance(valfmt, str):
valfmt = matplotlib.ticker.StrMethodFormatter(valfmt)

# Loop over the data and create a `Text` for each "pixel".
# Change the text's color depending on the data.
texts =
for i in range(data.shape[0]):
for j in range(data.shape[1]):
kw.update(color=textcolors[im.norm(data[i, j]) > threshold])
text = im.axes.text(j, i, valfmt(data[i, j], None), **kw)
texts.append(text)

return texts


So running the function with its argument, I used:



Rownames=list(df.index.values)
ColumnNames=list(df.columns.values)
fig, ax = plt.subplots()

im, cbar = heatmap(df, Rownames, ColumnNames, ax=ax,
cmap="YlGn", cbarlabel="frequency [freq/day]")
texts = annotate_heatmap(im, valfmt="{x:.1f} ")

fig.tight_layout()
plt.show()


However i get this :
the heatmap generated










share|improve this question






















  • The code give for me a error TypeError: Image data cannot be converted to float, which originates from the line ax.imshow(data, **kwargs). Are you sure that there was no mistake during pasting it here?
    – gehbiszumeis
    Nov 7 at 11:53










  • Yes,there was no mistake. Thanks
    – Bode
    Nov 7 at 12:06










  • You obviously have too much text in your figure, such that the heatmap is not seen any more. So the question is, do you really want to show each cell's value and all row-/column labels? If so, you will need to make the figure about a meter wide. If not, you might want to show only some of the values at the axes. If you then want to stick to the example you could set the rest to empty strings.
    – ImportanceOfBeingErnest
    Nov 8 at 2:25










  • Thanks for your response. I intend to show each cell's value and all row-/column labels,so increasing the size worked using ''fig, ax = plt.subplots(1, 1, figsize=(40,40))''
    – Bode
    Nov 8 at 3:23










  • It feels too large at one sight.Is there a way i can show the heatmap in a gliding manner
    – Bode
    Nov 8 at 3:35













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have a dataframe,df, with 29 rows and 92 columns with the rows being datetime Index and float as the column names representing the frequency of each of the column names day by day. I intend to plot a heatmap but i am getting a scattered plot. An example of dataframe looks like:



       Index                        0.0     1.0     2.0..... 91
2017-08-03 00:00:00 10 0 10 0
2017-08-04 00:00:00 20 60 1470 20
2017-08-05 00:00:00 0 58 0 24
2017-08-06 00:00:00 0 0 480 24
2017-09-07 00:00:00 0 0 0 25
: : : : :
: : : : :
2017-09-30 00:00:00


This is heatmap function that was called:



def heatmap(data, row_labels, col_labels, ax=None,
cbar_kw={}, cbarlabel="", **kwargs):
"""
Create a heatmap from a numpy array and two lists of labels.

Arguments:
data : A 2D numpy array of shape (N,M)
row_labels : A list or array of length N with the labels
for the rows
col_labels : A list or array of length M with the labels
for the columns
Optional arguments:
ax : A matplotlib.axes.Axes instance to which the heatmap
is plotted. If not provided, use current axes or
create a new one.
cbar_kw : A dictionary with arguments to
:meth:`matplotlib.Figure.colorbar`.
cbarlabel : The label for the colorbar
All other arguments are directly passed on to the imshow call.
"""

if not ax:
ax = plt.gca()

# Plot the heatmap
im = ax.imshow(data, **kwargs)

# Create colorbar
cbar = ax.figure.colorbar(im, ax=ax, **cbar_kw)
cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom")

# We want to show all ticks...
ax.set_xticks(np.arange(data.shape[1]))
ax.set_yticks(np.arange(data.shape[0]))
# ... and label them with the respective list entries.
ax.set_xticklabels(col_labels)
ax.set_yticklabels(row_labels)

# Let the horizontal axes labeling appear on top.
ax.tick_params(top=True, bottom=False,
labeltop=True, labelbottom=False)

# Rotate the tick labels and set their alignment.
plt.setp(ax.get_xticklabels(), rotation=-30, ha="right",
rotation_mode="anchor")

# Turn spines off and create white grid.
for edge, spine in ax.spines.items():
spine.set_visible(False)

ax.set_xticks(np.arange(data.shape[1]+1)-.5, minor=True)
ax.set_yticks(np.arange(data.shape[0]+1)-.5, minor=True)
ax.grid(which="minor", color="w", linestyle='-', linewidth=3)
ax.tick_params(which="minor", bottom=False, left=False)

return im, cbar


def annotate_heatmap(im, data=None, valfmt="{x:.2f}",
textcolors=["black", "white"],
threshold=None, **textkw):
"""
A function to annotate a heatmap.

Arguments:
im : The AxesImage to be labeled.
Optional arguments:
data : Data used to annotate. If None, the image's data is used.
valfmt : The format of the annotations inside the heatmap.
This should either use the string format method, e.g.
"$ {x:.2f}", or be a :class:`matplotlib.ticker.Formatter`.
textcolors : A list or array of two color specifications. The first is
used for values below a threshold, the second for those
above.
threshold : Value in data units according to which the colors from
textcolors are applied. If None (the default) uses the
middle of the colormap as separation.

Further arguments are passed on to the created text labels.
"""

if not isinstance(data, (list, np.ndarray)):
data = im.get_array()

# Normalize the threshold to the images color range.
if threshold is not None:
threshold = im.norm(threshold)
else:
threshold = im.norm(data.max())/2.

# Set default alignment to center, but allow it to be
# overwritten by textkw.
kw = dict(horizontalalignment="center",
verticalalignment="center")
kw.update(textkw)

# Get the formatter in case a string is supplied
if isinstance(valfmt, str):
valfmt = matplotlib.ticker.StrMethodFormatter(valfmt)

# Loop over the data and create a `Text` for each "pixel".
# Change the text's color depending on the data.
texts =
for i in range(data.shape[0]):
for j in range(data.shape[1]):
kw.update(color=textcolors[im.norm(data[i, j]) > threshold])
text = im.axes.text(j, i, valfmt(data[i, j], None), **kw)
texts.append(text)

return texts


So running the function with its argument, I used:



Rownames=list(df.index.values)
ColumnNames=list(df.columns.values)
fig, ax = plt.subplots()

im, cbar = heatmap(df, Rownames, ColumnNames, ax=ax,
cmap="YlGn", cbarlabel="frequency [freq/day]")
texts = annotate_heatmap(im, valfmt="{x:.1f} ")

fig.tight_layout()
plt.show()


However i get this :
the heatmap generated










share|improve this question













I have a dataframe,df, with 29 rows and 92 columns with the rows being datetime Index and float as the column names representing the frequency of each of the column names day by day. I intend to plot a heatmap but i am getting a scattered plot. An example of dataframe looks like:



       Index                        0.0     1.0     2.0..... 91
2017-08-03 00:00:00 10 0 10 0
2017-08-04 00:00:00 20 60 1470 20
2017-08-05 00:00:00 0 58 0 24
2017-08-06 00:00:00 0 0 480 24
2017-09-07 00:00:00 0 0 0 25
: : : : :
: : : : :
2017-09-30 00:00:00


This is heatmap function that was called:



def heatmap(data, row_labels, col_labels, ax=None,
cbar_kw={}, cbarlabel="", **kwargs):
"""
Create a heatmap from a numpy array and two lists of labels.

Arguments:
data : A 2D numpy array of shape (N,M)
row_labels : A list or array of length N with the labels
for the rows
col_labels : A list or array of length M with the labels
for the columns
Optional arguments:
ax : A matplotlib.axes.Axes instance to which the heatmap
is plotted. If not provided, use current axes or
create a new one.
cbar_kw : A dictionary with arguments to
:meth:`matplotlib.Figure.colorbar`.
cbarlabel : The label for the colorbar
All other arguments are directly passed on to the imshow call.
"""

if not ax:
ax = plt.gca()

# Plot the heatmap
im = ax.imshow(data, **kwargs)

# Create colorbar
cbar = ax.figure.colorbar(im, ax=ax, **cbar_kw)
cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom")

# We want to show all ticks...
ax.set_xticks(np.arange(data.shape[1]))
ax.set_yticks(np.arange(data.shape[0]))
# ... and label them with the respective list entries.
ax.set_xticklabels(col_labels)
ax.set_yticklabels(row_labels)

# Let the horizontal axes labeling appear on top.
ax.tick_params(top=True, bottom=False,
labeltop=True, labelbottom=False)

# Rotate the tick labels and set their alignment.
plt.setp(ax.get_xticklabels(), rotation=-30, ha="right",
rotation_mode="anchor")

# Turn spines off and create white grid.
for edge, spine in ax.spines.items():
spine.set_visible(False)

ax.set_xticks(np.arange(data.shape[1]+1)-.5, minor=True)
ax.set_yticks(np.arange(data.shape[0]+1)-.5, minor=True)
ax.grid(which="minor", color="w", linestyle='-', linewidth=3)
ax.tick_params(which="minor", bottom=False, left=False)

return im, cbar


def annotate_heatmap(im, data=None, valfmt="{x:.2f}",
textcolors=["black", "white"],
threshold=None, **textkw):
"""
A function to annotate a heatmap.

Arguments:
im : The AxesImage to be labeled.
Optional arguments:
data : Data used to annotate. If None, the image's data is used.
valfmt : The format of the annotations inside the heatmap.
This should either use the string format method, e.g.
"$ {x:.2f}", or be a :class:`matplotlib.ticker.Formatter`.
textcolors : A list or array of two color specifications. The first is
used for values below a threshold, the second for those
above.
threshold : Value in data units according to which the colors from
textcolors are applied. If None (the default) uses the
middle of the colormap as separation.

Further arguments are passed on to the created text labels.
"""

if not isinstance(data, (list, np.ndarray)):
data = im.get_array()

# Normalize the threshold to the images color range.
if threshold is not None:
threshold = im.norm(threshold)
else:
threshold = im.norm(data.max())/2.

# Set default alignment to center, but allow it to be
# overwritten by textkw.
kw = dict(horizontalalignment="center",
verticalalignment="center")
kw.update(textkw)

# Get the formatter in case a string is supplied
if isinstance(valfmt, str):
valfmt = matplotlib.ticker.StrMethodFormatter(valfmt)

# Loop over the data and create a `Text` for each "pixel".
# Change the text's color depending on the data.
texts =
for i in range(data.shape[0]):
for j in range(data.shape[1]):
kw.update(color=textcolors[im.norm(data[i, j]) > threshold])
text = im.axes.text(j, i, valfmt(data[i, j], None), **kw)
texts.append(text)

return texts


So running the function with its argument, I used:



Rownames=list(df.index.values)
ColumnNames=list(df.columns.values)
fig, ax = plt.subplots()

im, cbar = heatmap(df, Rownames, ColumnNames, ax=ax,
cmap="YlGn", cbarlabel="frequency [freq/day]")
texts = annotate_heatmap(im, valfmt="{x:.1f} ")

fig.tight_layout()
plt.show()


However i get this :
the heatmap generated







python pandas matplotlib






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 7 at 11:17









Bode

14711




14711












  • The code give for me a error TypeError: Image data cannot be converted to float, which originates from the line ax.imshow(data, **kwargs). Are you sure that there was no mistake during pasting it here?
    – gehbiszumeis
    Nov 7 at 11:53










  • Yes,there was no mistake. Thanks
    – Bode
    Nov 7 at 12:06










  • You obviously have too much text in your figure, such that the heatmap is not seen any more. So the question is, do you really want to show each cell's value and all row-/column labels? If so, you will need to make the figure about a meter wide. If not, you might want to show only some of the values at the axes. If you then want to stick to the example you could set the rest to empty strings.
    – ImportanceOfBeingErnest
    Nov 8 at 2:25










  • Thanks for your response. I intend to show each cell's value and all row-/column labels,so increasing the size worked using ''fig, ax = plt.subplots(1, 1, figsize=(40,40))''
    – Bode
    Nov 8 at 3:23










  • It feels too large at one sight.Is there a way i can show the heatmap in a gliding manner
    – Bode
    Nov 8 at 3:35


















  • The code give for me a error TypeError: Image data cannot be converted to float, which originates from the line ax.imshow(data, **kwargs). Are you sure that there was no mistake during pasting it here?
    – gehbiszumeis
    Nov 7 at 11:53










  • Yes,there was no mistake. Thanks
    – Bode
    Nov 7 at 12:06










  • You obviously have too much text in your figure, such that the heatmap is not seen any more. So the question is, do you really want to show each cell's value and all row-/column labels? If so, you will need to make the figure about a meter wide. If not, you might want to show only some of the values at the axes. If you then want to stick to the example you could set the rest to empty strings.
    – ImportanceOfBeingErnest
    Nov 8 at 2:25










  • Thanks for your response. I intend to show each cell's value and all row-/column labels,so increasing the size worked using ''fig, ax = plt.subplots(1, 1, figsize=(40,40))''
    – Bode
    Nov 8 at 3:23










  • It feels too large at one sight.Is there a way i can show the heatmap in a gliding manner
    – Bode
    Nov 8 at 3:35
















The code give for me a error TypeError: Image data cannot be converted to float, which originates from the line ax.imshow(data, **kwargs). Are you sure that there was no mistake during pasting it here?
– gehbiszumeis
Nov 7 at 11:53




The code give for me a error TypeError: Image data cannot be converted to float, which originates from the line ax.imshow(data, **kwargs). Are you sure that there was no mistake during pasting it here?
– gehbiszumeis
Nov 7 at 11:53












Yes,there was no mistake. Thanks
– Bode
Nov 7 at 12:06




Yes,there was no mistake. Thanks
– Bode
Nov 7 at 12:06












You obviously have too much text in your figure, such that the heatmap is not seen any more. So the question is, do you really want to show each cell's value and all row-/column labels? If so, you will need to make the figure about a meter wide. If not, you might want to show only some of the values at the axes. If you then want to stick to the example you could set the rest to empty strings.
– ImportanceOfBeingErnest
Nov 8 at 2:25




You obviously have too much text in your figure, such that the heatmap is not seen any more. So the question is, do you really want to show each cell's value and all row-/column labels? If so, you will need to make the figure about a meter wide. If not, you might want to show only some of the values at the axes. If you then want to stick to the example you could set the rest to empty strings.
– ImportanceOfBeingErnest
Nov 8 at 2:25












Thanks for your response. I intend to show each cell's value and all row-/column labels,so increasing the size worked using ''fig, ax = plt.subplots(1, 1, figsize=(40,40))''
– Bode
Nov 8 at 3:23




Thanks for your response. I intend to show each cell's value and all row-/column labels,so increasing the size worked using ''fig, ax = plt.subplots(1, 1, figsize=(40,40))''
– Bode
Nov 8 at 3:23












It feels too large at one sight.Is there a way i can show the heatmap in a gliding manner
– Bode
Nov 8 at 3:35




It feels too large at one sight.Is there a way i can show the heatmap in a gliding manner
– Bode
Nov 8 at 3:35

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53188408%2fmessy-heatmap-when-plotting%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53188408%2fmessy-heatmap-when-plotting%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini