保存一个 10x1 的线条图
Saving a 10x1 line figure
我正在创建一系列图形,其中 2 个是线图。我正在尝试将这两条线图保存为 jpeg,但我遇到了一些麻烦。使用 saveas 不起作用。
我也尝试过使用 print 和 hgsave 来做到这一点,但无济于事。我认为 hgsave 只能保存为 fig 格式,这样就可以解释那个了。我可以使用文件 > 另存为手动保存图形,但我也希望能够在代码中执行此操作。
这段代码可以重现问题:
x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(Test_Line, 'testline.jpg')
理想情况下,代码应该能够将图形保存为 jpeg 文件。尽管如果那不可能,那么任何图像文件扩展名都应该足够了。相反,我收到此错误:
无法从单元格转换为 matlab.graphics.chart.primitive.Line。
这与它是一个 10x1 行对象有关吗?
感谢任何帮助!
您应该提供图形句柄,而不是线条对象的句柄。您可以使用 gcf
:
来引用当前数字
x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(gcf, 'testline.jpg')
或者(例如,当您创建了多个图形,并希望在脚本末尾保存它们时),存储图形句柄:
x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
fig = figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(fig, 'testline.jpg')
我正在创建一系列图形,其中 2 个是线图。我正在尝试将这两条线图保存为 jpeg,但我遇到了一些麻烦。使用 saveas 不起作用。
我也尝试过使用 print 和 hgsave 来做到这一点,但无济于事。我认为 hgsave 只能保存为 fig 格式,这样就可以解释那个了。我可以使用文件 > 另存为手动保存图形,但我也希望能够在代码中执行此操作。
这段代码可以重现问题:
x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(Test_Line, 'testline.jpg')
理想情况下,代码应该能够将图形保存为 jpeg 文件。尽管如果那不可能,那么任何图像文件扩展名都应该足够了。相反,我收到此错误:
无法从单元格转换为 matlab.graphics.chart.primitive.Line。
这与它是一个 10x1 行对象有关吗?
感谢任何帮助!
您应该提供图形句柄,而不是线条对象的句柄。您可以使用 gcf
:
x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(gcf, 'testline.jpg')
或者(例如,当您创建了多个图形,并希望在脚本末尾保存它们时),存储图形句柄:
x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
fig = figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(fig, 'testline.jpg')