How to increase contrast of a 3d plot? Should I set colorbar to log scale?

16 vues (au cours des 30 derniers jours)
Hi all,
I have the following code to plot a structure with y-displacement as ColorMapData ('node.mat', 'elem.mat', 'phiOri.mat' are attached):
clear; clc;
load('node.mat', 'node');
load('elem.mat', 'elem');
load('phiOri.mat', 'phiOri')
dis = reshape(phiOri(:, 1), [3, 3146]);
dis = dis';
scaleFactor = 1;
pdeplot3D(node, elem, 'ColorMapData', abs(dis(:, 2)));
colormap jet
axis image
The image is like this:
As you can see the majority of displacement are small, thus most of the structure are blue. Is there a way to enhance the contrast, i.e. enhance the display of region [0 0.06], such that change in the colormap are clearer?
I think change colorbar to log scale may achieve what I want, but I don't know how to do this, please help! Thanks in advance!

Réponse acceptée

Akshay Khadse
Akshay Khadse le 12 Sep 2018
Instead of modifying the colormap scale, you could take a log of the ColorMapData values to magnify your data variations.
I tried out the following snippet:
pdeplot3D(node, elem, 'ColorMapData', 10+log10(abs(dis(:, 2))));
Please refer to the documentation of the ' colormap ' function if you still need to modify the color scales. You can generate logarithmically spaced vectors by using ' logspace ' and then construct colormap matrices using those.

Plus de réponses (0)

Catégories

En savoir plus sur Colormaps dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by