Matlab散点图分类x轴数据
我有一个类似于下面的数据集(除了我有>50个不同的组),我想用x轴上的类别做一个散点图。如果我手动排序数据,我知道如何做到这一点,但数据集非常大,所以我想自动化这一点 扩展数据是从excel读取的单元格数组:Matlab散点图分类x轴数据,matlab,Matlab,我有一个类似于下面的数据集(除了我有>50个不同的组),我想用x轴上的类别做一个散点图。如果我手动排序数据,我知道如何做到这一点,但数据集非常大,所以我想自动化这一点 扩展数据是从excel读取的单元格数组: xdata = ['group1' 'group1' 'group1' 'group1' 'group1' 'group1' 'group2' 'group2' 'group2' 'group3' 'group3' 'group3' 'group3' 'group3']'; ydata =
xdata = ['group1' 'group1' 'group1' 'group1' 'group1' 'group1' 'group2' 'group2' 'group2' 'group3' 'group3' 'group3' 'group3' 'group3']';
ydata = rand(14,1);
scatter(xdata,ydata,'jitter')
我将根据您删除的问题修改我的答案:
% Your data
xdata = {'group1' 'group1' 'group1' 'group1' 'group1' 'group1' 'group2' 'group2' 'group2' 'group3' 'group3' 'group3' 'group3' 'group3'}';
ydata = rand(14,1);
% Transform categorical to integers
[labels, ~, xdata_idx] = unique(xdata);
% Plot!
scatter(xdata_idx , ydata)
% Add labels
set(gca , 'XTick' , unique(xdata_idx), 'XTickLabels' , labels)
我将根据您删除的问题修改我的答案:
% Your data
xdata = {'group1' 'group1' 'group1' 'group1' 'group1' 'group1' 'group2' 'group2' 'group2' 'group3' 'group3' 'group3' 'group3' 'group3'}';
ydata = rand(14,1);
% Transform categorical to integers
[labels, ~, xdata_idx] = unique(xdata);
% Plot!
scatter(xdata_idx , ydata)
% Add labels
set(gca , 'XTick' , unique(xdata_idx), 'XTickLabels' , labels)
如果
xdata
是一个单元格数组,您应该将其定义为单元格数组(即xdata={'group1'…}
),如果xdata
是一个单元格数组,您应该将其定义为单元格数组(即xdata={'group1'…}
),谢谢!是否可以获得x轴标签?我猜你会使用unique
来实现这一点?是的,unique”会给你标签,但你还必须设置XTick`以确保标签位于正确的位置。我更新了答案。谢谢!是否可以获得x轴标签?我猜你会使用unique
来实现这一点?是的,unique”会给你标签,但你还必须设置XTick`以确保标签位于正确的位置。我更新了答案。