How can I plot a matrix using pcolor and colorscale as log?
42 次查看(过去 30 天)
显示 更早的评论
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 个评论
Sahas
2024-7-17,7:47
移动:Star Strider
2024-7-17,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?
回答(1 个)
Star Strider
2024-7-16,11:55
3 个评论
Star Strider
2024-7-16,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
2024-7-17,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]);
.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Blue 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!