gpt4 book ai didi

linux - 创建具有重叠直方图的图形并将其保存到单个文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:07 26 4
gpt4 key购买 nike

我正在尝试编写一个 Matlab 脚本来分析两组特定的数据,为它们创建直方图,然后将它们写入一个文件,您可以在其中看到两个直方图重叠在一个图上。

我创建了一个功能脚本,它为一组数据创建了直方图,基本上是这样的:

h1=figure;
hist(data,nbins:;

print(h1,'-dpng','hist.png)

然后我尝试简单地添加第二行:

h2=figure;

并更改打印函数以包含 h2。那显然是行不通的。我发现我不能同时拥有带有打印功能的 h1 和 h2。

在互联网上搜索并寻找解决此问题的方法后,我决定尝试使用 saveas。我得到了以下内容:

h=findobj(gca,'Type','patch');
hist(data1,nbins);
hold on;
hist(data2,nbins);

set(h(1),'FaceColor','r','EdgeColor','k');
set(h(2),'FaceColor','b','EdgeColor','k');

saveas(h,'-dpng','hist.png')

但这也不太奏效。我在 Mathworks 网站上没有找到任何可以帮助我解决这个问题的东西,我也没有在任何其他网站上找到任何东西。我正在使用通过 SSH 连接到不同服务器的 Linux 计算机,所以我可以查看我制作的绘图的唯一方法是将它们保存到一个文件中,然后打开它们。如果您对完成我第一段中概述的任务有任何建议,请告诉我。谢谢。

最佳答案

一种方法是对不同的直方图使用不同的轴。您可以为此使用 SUBPLOT:

subplot(2,1,1)
hist(data1,nbins);
subplot(2,1,2)
hist(data2,nbins);

另一种方法是找到一个公共(public) bins (x) 并将 hist 输出返回给向量。然后使用 BAR 函数绘制。

nbins = 20;
x = linspace(min([data1(:);data2(:)]),max([data1(:);data2(:)]),nbins);
h1 = hist(data1, x);
h2 = hist(data2, x);
hb = bar(x,[h1(:),h2(:)],'hist');

% change colors and set x limits
set(hb(1),'FaceColor','r','EdgeColor','k');
set(hb(2),'FaceColor','b','EdgeColor','k');
gap = x(2)-x(1);
xlim([x(1)-gap x(end)+gap])

关于linux - 创建具有重叠直方图的图形并将其保存到单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com