3D scatter with 2 different data sets as different colours

25 views (last 30 days)
I have 2 data sets in Kitap 1 and PLMS. I want to show this 2 datasets with different colours in one 3D scatter. I wrote this code but I have only yellow points with this. Can somebody help me for 2 different colours.
data=xlsread('Kitap1');
x=data(1:end,1);
y=data(1:end,3);
z=data(1:end,5);
data2=xlsread('PLMS');
xx=data2(1:end,1);
yy=data2(1:end,4);
zz=data2(1:end,3);
figure(1);
scatter3(xx,yy,zz,'r','filled');
hold on
scatter3(x,y,z,'y','filled');
hold off
grid on
xlabel('X(km)')
ylabel('a(m/s^2)')
zlabel('CO_2 emission(g/s)')
zlim([0 100])
  2 Comments
Subhadeep Koley
Subhadeep Koley on 12 Feb 2020
Edited: John Kelly on 15 Apr 2024 at 22:48
Can you provide the Kitap1 and PLMS files?
Because in my end I can plot 2 different data in 2 different colours successfully (Refer the code below).
close all; clc;
% Random data1
x = 1:200;
y = 1:200;
z = rand(1, 200);
% Random data2
xx = 1:200;
yy = 1:200;
zz = rand(1, 200);
figure; scatter3(xx, yy, zz, 'r', 'filled');
hold on;
scatter3(x, y, z, 'y', 'filled');
hold off; grid on;
xlabel('X(km)'); ylabel('a(m/s^2)'); zlabel('CO_2 emission(g/s)');

Sign in to comment.

Accepted Answer

Subhadeep Koley
Subhadeep Koley on 12 Feb 2020
Firstly your PLMS.xlsx file has some NaN values. Moreover, the variable x is identical with xx, y is identical with yy, and so on...
Therefore, the first scatter plot is being overlapped by the second scatter plot.
I have increased the marker size of the first scatter plot and decreased the marker size of the second scatter plot in the code below. It is clearly visible how the first scatter plot is being overlapped by the second scatter plot.
Hope this helps!
clc; close all;
data = xlsread('Kitap1.xlsx');
data2 = xlsread('PLMS.xlsx');
x = data(1:end, 1);
y = data(1:end, 3);
z = data(1:end, 5);
xx = data2(1:end, 1);
yy = data2(1:end, 4);
zz = data2(1:end, 3);
% Discarding NaN values
xx(isnan(xx)) = [];
yy(isnan(yy)) = [];
zz(isnan(zz)) = [];
figure;
scatter3(xx, yy, zz, 100, 'r', 'filled');
hold on;
scatter3(x, y, z, 40, 'y', 'filled');
hold off;
grid on;
xlabel('X(km)');
ylabel('a(m/s^2)');
zlabel('CO_2 emission(g/s)');
dualScatter.png

More Answers (0)

Categories

Find more on Discrete Data Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!