How can I plot a matrix using pcolor and colorscale as log?
42 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
AMIT SINGH CHANDEL
el 16 de Jul. de 2024 a las 11:33
Comentada: Star Strider
el 17 de Jul. de 2024 a las 13:39
I have a timeseries matrix data of a lidar. I want to plot the time series keeping colorbar as logscale.
I have written the following code but it shows an error
load time_June.mat
load elevation_June_5km.mat
load backscatter_June_5km.mat
load raw_backscatter_June_5km.mat
figure(1);
pcolor(time_June, elevation_June_5km, backscatter_June_5km); shading interp
c = colorbar;
caxis([10^-7 10^-4]);
set(gca, 'ColorScale', 'log');
c.Label.String = 'Attenuated backscatter coefficient (m^{-1} sr^{-1})';
c.Ruler.Scale = 'log';
c.Ruler.MinorTick = 'on';
colormap jet;
set(gca, 'YDir', 'normal');
xlabel('Time (LT)');
ylabel('Altitude (km)');
axis tight;
set(gca, 'FontName', 'Times', 'FontSize', 14);
startDate = datetime(2023, 6, 16);
endDate = datetime(2023, 6, 25);
xlim([startDate, endDate]);
Error:
Warning: Error creating or updating Surface
Error in value of property CData
DataSpace or ColorSpace transform method failed.
2 comentarios
Sahas
el 17 de Jul. de 2024 a las 7:47
Movida: Star Strider
el 17 de Jul. de 2024 a las 10:14
I've taken a look at the code and ran a few simlations with dummy data. But to generate the given errors, it would requires the specific files to load the workspace variables. Could you please share those files so that I could further investigate for the cause of this behaviour?
Respuestas (1)
Star Strider
el 16 de Jul. de 2024 a las 11:55
3 comentarios
Star Strider
el 16 de Jul. de 2024 a las 13:04
I cannot figure out what you are doing. I also do not have your data, so I cannot experiment with it.
Using an example from Specify True Colors for Surface Plot and adding a ColorScale call, I get this result —
[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
figure
surf(X,Y,Z,CO)
Ax = gca;
Ax.ColorScale = 'log';
colorbar
.
Star Strider
el 17 de Jul. de 2024 a las 13:39
It works in R2024a without error,so perhaps an upgrade would be appropriate.
Note that your desired dates (at least for this data set) are not included in the ‘time_June’ datetime array.
files = dir('*.mat');
NrFiles = numel(files)
for k = 1:numel(files)
filename = files(k).name
vars = whos('-file', filename);
varname = vars.name;
load(filename)
Sz = vars.size
end
figure(1)
% surf(backscatter_June_5km, 'EdgeColor','interp')
surf(time_June, elevation_June_5km, backscatter_June_5km, 'EdgeColor','interp')
c = colorbar;
caxis([10^-7 10^-4]);
set(gca, 'ColorScale', 'log');
c.Label.String = 'Attenuated backscatter coefficient (m^{-1} sr^{-1})';
c.Ruler.Scale = 'log';
c.Ruler.MinorTick = 'on';
colormap jet;
set(gca, 'YDir', 'normal');
xlabel('Time (LT)');
ylabel('Altitude (km)');
axis tight;
set(gca, 'FontName', 'Times', 'FontSize', 14);
startDate = datetime(2023, 6, 16);
endDate = datetime(2023, 6, 25);
CheckDates = nnz(ismember(time_June, [startDate, endDate]))
time_June_Range = [min(time_June); max(time_June)]
% xlim([startDate, endDate]);
.
Ver también
Categorías
Más información sobre Blue en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!