0

我必须用 MATLAB 绘制一些数据。

我有标签:

x = [1 , 2 , 3 , 5 , 10 , 50 , 100 , 110 , 150 , 200 ]

我有一些数据,比如:

for j=1:10
for i=1:10
y(j,i) = x(i)*rand()
end
end

现在,当我启动 boxplot(y,x) 时,我获得了 x 标签之间的固定间隙。例如 1 与 2 的距离与 150 到 200 的距离相同。如何设置与实际间隙成比例的距离?

4

2 回答 2

1

假设(从评论中)您正在使用统计工具箱中的箱线图:

在 boxplot(data,x) 中,x 被假定为关于组的信息——例如,这与沿 x 轴的位置无关,而是关于如何对数据进行分组的信息。在此示例中使用内置数据:

load carsmall
boxplot(MPG,Model_Year)

MPG 和 Model_Year 都是 100 x 1 双精度 - Model_Year 包含 3 个唯一值(70、76、82),例如此数据中的组数为 3。输出是一个带有三个框的图,显示这三年的 MPG - 但是默认情况下,框的位置是 1:numGroups。

您可以更改此行为,但需要使用参数:

data = randn(100,7);
x = [1 , 2 , 3 , 5 , 10 , 50 , 100];
boxplot(data,'position',x)

您可能需要使用其他一些绘图参数(框宽等)以使其看起来不错。

于 2013-07-31T09:37:36.800 回答
0

曲线的平滑度取决于数据的分辨率和对图形所做的缩放量。

你有一个抛物线方程y=x*x(这不准确,就像你的一样)

因此,您可以尝试以下操作:

>> x = [1:.025:100];
>> y=x.*x;
>> plot(x,y)
于 2013-07-31T08:59:56.770 回答