How to get this kind of plot

I have 3d discrete dataset where for every independent variable x and y there is a frequency value z.
I want to plot it like the chart below:
How do i do this?
Thanks

2 Comments

Hint:
imagesc( magic(12) )
Thankyou! is there anyway i can change the 0 color to something other than blue?

Sign in to comment.

 Accepted Answer

per isakson
per isakson on 16 Nov 2013
Edited: per isakson on 17 Nov 2013
It requires a bit of code to make this plot.
  • select a suitable colormap (You might have to define your own. See colormapeditor.) Let ix=1 be white.
  • map the frequences to the colormap-indicies, e.g [1:64] (should have been [2:64]). Assign 1 to missing values or whatever white means.
  • use image - not imagesc
  • fix the axes ticklabels
or better(?)
  • select the colormap of your choice and add an extra row for the "missing-value-color"
  • map frequency to the "colormap" and missing-value to the "extra row".
  • the colorbar ticklabels will require some extra work
I use the approach described above. Pro: I get full control of the colors and the resulting code is fast. Con: requires some coding and testing.
pcolor might offer a simpler way. Try
x = [1:8];
y = [1:8];
z = x' * y ;
z(4:5,7) = nan;
pcolor( x, y, z )
Note, this gives a plot with 7x7 squares.

2 Comments

I updated the answer
Thanks for the help, Ive accepted your answer!

Sign in to comment.

More Answers (0)

Categories

Products

Tags

Asked:

on 16 Nov 2013

Commented:

on 18 Nov 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!