How can I create a Risk Matrix Plot?

3 次查看(过去 30 天)
Hello
I would like to plot a 3x3 risk matrix Example: 3x3 risk matrix .
Let us assume, I have 5 data points:
risk1: severity1 / frequency1 risk2: severity2 / frequency2 … risk5: severity5 / frequency5
Now I use scatter plot to plot the data. I would like to have a plot with different background Color (please see link). A 3x3 risk matrix: cells 1/1 (bottom left), 1/2, 2/1 in green, cells 1/3, 2/2, 3/1 in yellow and cells 2/3, 3/3 (top right) and 3/2 in red.
What is the most appropriate way?
Thank you.
  5 个评论
Cyrill Baumann
Cyrill Baumann 2018-9-3
Yes, exactly - a 3x3 frequency-severity-plot.
I have to find out if it works with heatmap. I will try. However, ist there a way of simply define colors of the plot background?
Thanks for your contributions.
jonas
jonas 2018-9-3
编辑:jonas 2018-9-3
You can easily design the coloured matrix and label the grid with imagesc. This is kind of similar to what you are already doing with plot, but you will get a nicer looking matrix. I don't know if there is a built in function, but you may find something on FileExchange

请先登录,再进行评论。

采纳的回答

jonas
jonas 2018-9-3
编辑:jonas 2018-9-3
I wrote a template you can use based on imagesc. See attached image for results.
%Define risk matrix 1-3 (1 low - 2 medium - 3 severe)
C=[2 3 3;
1 2 3;
1 1 2];
%Values for each cell
V=[1 2 3;4 5 6;7 8 9]
ax=axes
hold on
%Draw colored grid
[X,Y]=meshgrid(1:size(C,1),1:size(C,2))
h=imagesc(X(:),Y(:),flipud(C))
%Define colors (green, yellow, red)
cmap=[0 1 0;1 1 0;1 0 0];
% Add cell values
str = sprintfc('%d',V(:))
text(X(:),Y(:),str)
% Define row and column labels
RowLabels={'row1','row2','row3'};
ColLabels={'col1','col2','col3'};
% Some axes settings
set(gca,'xtick',unique(X),...
'ytick',unique(Y),...
'yticklabels',RowLabels,...
'xticklabels',ColLabels)
% Add colorbar and describe colors
cb=colorbar(ax,'location','southoutside')
set(cb,'ticks',[1.3 2 2.7],...
'ticklabels',{'Low','Medium','High'},...
'ticklength',0)
box on
set(ax,'layer','top')
colormap(cmap)
  5 个评论
Walter Roberson
Walter Roberson 2022-1-20
Please expand on your question? What is it that you would like to do in 3D ?

请先登录,再进行评论。

更多回答(1 个)

the cyclist
the cyclist 2018-9-3
As stated in the comments, you could use the imagesc command, or you could try the patch command to create each section individually.

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by