How can I plot a matrix using pcolor and colorscale as log?

4 vues (au cours des 30 derniers jours)
AMIT SINGH CHANDEL
AMIT SINGH CHANDEL le 16 Juil 2024
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 commentaires
Sahas
Sahas le 17 Juil 2024
Déplacé(e) : Star Strider le 17 Juil 2024
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?
AMIT SINGH CHANDEL
AMIT SINGH CHANDEL le 17 Juil 2024
Hi Sahas
I have attached the files for you to look over.

Connectez-vous pour commenter.

Réponses (1)

Sandeep Mishra
Sandeep Mishra le 8 Août 2024
Hello AMIT SINGH CHANDEL,
I understand you are encountering an error while plotting the time series data with the 'ColorScale' property set to logscale.
Kindly follow the below workarounds to resolve the issue:
  • I observed that the ‘backscatter_June_5km.mat file contains some NaN values, which are causing the issue. To resolve the error, you can replace the NaN values in your 'backscatter_June_5km.mat' file with any double integer value. Refer to the below example code snippet which replacesNaN values with a fixed value 2.
% Replacing NaN values to a fixed value.
backscatter_June_5km = fillmissing(backscatter_June_5km, 'constant', 2);
  • It appears that MATLAB is handling the NaN values effectively after R2022a. Therefore, updating your MATLAB to R2022a or a later version might also resolve the issue.
I hope this will help you resolve the error and successfully plot the time series.

Catégories

En savoir plus sur Printing and Saving dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by