文件交换

图像缩略图

图表开发工具箱

版本2.0(20.7 MB) 肯迪埃利
此工具箱包含技术文章的MATLAB代码“创建具有MATLAB面向对象编程的专用图表”。

72下载

更新2021年5月11日

查看版本历史记录

查看许可证

图表提供了特定于特定于特定于应用程序编程接口(API),用于创建自定义可视化。设计和实现图表不仅为最终用户提供了方便的API,还可以同时删除用户对低级图形对象进行操作。

该工具箱包括多个自定义MATLAB图表的不同示例,以及目录应用程序,用于浏览可用图表。

您可以检查每个图表使用的源代码,探索每个图表的功能和功能,并运行实时脚本示例演示每个图表的使用。该工具箱还具有文档和资源,以帮助您开始开发自己的图表。

引用

Ken Deeley(2021年)。图表开发工具箱(//www.tatmou.com/matlabcentral/fileexchange/65857-chart-development-toolbox),matlab中央文件exchange。检索到

意见及评分(21.

Wandrys Nascimento de Sousa

谢谢,肯。另一个点是如何将图例放入圆柱形图。我正在尝试用于工具箱中的其他图形的方法,但没有成功。我在x轴上包含的名称是否有可能选择斜率?
抱歉这么多问题。

肯迪埃利

嗨wandrys,

您可以使用ExportGraphics函数(自R2020A从R2020A可用)将图形保存到外部格式,例如.png,例如,>> Exportagraphics(f,“mychart.png”,“分辨率”,150),其中f是图把握。

为了显示每个圆柱体中的数值,我认为可以在现有圆柱体图表代码的基础上实现这一点。想到的两种方法是自定义数据提示和文本框。这里有一些如何在测距仪图表中创建自定义数据提示的示例,Spider和WindRose图表都包含使用自定义文本框的示例。通过ButtonDownFcn回调,您可以考虑在用户单击圆柱体时让文本框出现/消失(这是Spider和WindRose中采用的方法)。

最好的祝愿,

Wandrys Nascimento de Sousa

非常感谢您清除我的“疑惑”,Ken。这就是为什么我是Matlab的粉丝。现在是完美的。我之前没有问过我的问题,但我的最后一个关于气缸图的问题是如果你可以将圆柱体的每种颜色的值放在每种颜色中,以使其更加互动。另一点是,我无法以saveas以像.png的格式保存生成的数字。还有另一个具体程序吗?

肯迪埃利

嗨wandrys,

非常感谢您的反馈。是的,对于汽缸图表,可以使用XTicklabels()方法在X轴上为每个堆叠滚筒放置一个名称。请参阅下面的示例代码。

>> f = Uifigure;%创建图表的父图
>> Y = [2,2,3;2,5,6;2,8,9;2,11,12];%定义了图表的数据
>> C = Chart.cylinder(“父”,F,“数据”,Y);%创建图表
>> XTickLabels(C,“组件”+(1:4))%指定X-Tick标签为:组件1,组件2,组件3,组件4

最好的祝愿,

Wandrys Nascimento de Sousa

美丽而完美的设计。壮丽。恭喜。现在我有疑问。对于气缸图形,是否可以将名称放在X轴上而不是气缸数?喜欢气缸1而不是1在x轴上它可以具有名称“组件1”?

肯迪埃利

嗨洛根,

好问题。通常,图表私下维护其图形对象(即,它们不会将其内部图形公开给用户)。这可以防止意外删除,修改或其他未经授权的操作。遗憾的是,作为这种副作用,一些便利功能,例如保持,不起作用,因为它们需要访问图表的轴,这私下存储。

您的问题的一个解决方案是创建一个散点图的版本,它支持XDATA和YDATA属性的2D矩阵,而不是当前实现,允许XDATA和YDATA仅为向量。金宝app然后,可以将每对列(XDATA(:,k),ydata(:,k))视为单独的数据集,其具有自己的最佳系列。您还可以支持Xdata是向量的金宝app情况,ydata是一个矩阵,并将每个列ydata解释为要绘制相同xdata向量的数据集。实现这将支持您的要求 - 而不是使用保留,用户可金宝app以只更改Xdata / ydata图表属性。随着STIPTSFIT的SET.xDATA,SET.YDATA方法感到自由。

非常感谢您的反馈,

夸克Q.

洛根涌

“散点图”功能是否支持同一图中的多个数据集,例如分散“保持”?金宝app谢谢。

肯迪埃利

嗨太浩,

非常感谢您花时间提供反馈。我们之前已经看到过这个问题,并通过我们的同事制定的图表。问题是,如果轴的HouspVisibility属性设置为“OFF”,则禁用轴的工具栏的交互式使用。

示例:

斧头=轴(“Huppervisibility”,“Off”);%交互式工具栏使用已禁用

ax.handlevisibility =“开”;%工具栏现在使用

我们在图表中将Huppervisibility属性设置为“OFF”的原因是通过另一个绘图操作防止用户无意中删除或修改图表的图形对象。例如,当调用绘图函数时,默认行为是查找可用于绘制的最新轴,然后使用该轴创建图。

作为解决方法,您可以使用Suppervisibility设置为“ON”的图表的轴创建,这将为您提供对交互式轴工具栏的访问。此外,为了最大限度地减少对由其他绘图操作引起的图表无意中干扰的风险,您应该将包含图表的顶级图的Huppervisibility设置为“OFF”。(请注意,将图表面板的Huppervisibily设置为“关闭”并不能解决问题,因为面板不保护其轴儿童免于未经授权的策划。)

谢谢您报告此 - 我们将通过此反馈将此反馈传递给我们的图形开发团队以备将来考虑。

Tahoe Schrader.

任何想法为什么带缩放,平移,数据光标等的轴工具栏在创建其中一个图表时不会出现?甚至为“obj.axbar(obj.axes,'default')”命令添加到构造函数不起作用“。迫使Menubar和工具栏在exampleFigure函数中创建栏...但按钮不起作用。以某种方式由于它们的编码方式,图表类和单个绘图类可以摆脱此功能?

肯迪埃利

谢谢马丁,
富有斑点,谢谢您提供反馈。我提交了一个纠正版本,应该很快就会出现。

马丁·莱克纳

图表图标中的错误仍然存​​在。如果未安装所有必要的工具箱,则从ChartCatalog(例如“Financial Toolbox”)中删除一些图表。在这种情况下,图表图标的初始化会搞砸。要修复此错误,我更改了Cataloglauncher类中的以下两行:

第123行:[ChartList,〜,Indexchart] =交叉(UserAccessibleCharts,ChartNames);
第142行:“imagesource”,s.charttiles(indexchart(k))。瓷砖,...

我喜欢ChartCatalog的想法和创建文档作为MLX文件,包括打开Live脚本的链接或查看源代码。

肯迪埃利

谢谢马丁,
我将很快更新文件交换条目。

马丁·莱克纳

嗨ken,
很明显,您需要R2019B为此应用程序,但在Matlab释放兼容中的文件交换页面上的条目是:
用R2019B创建
与任何版本兼容
你能将“兼容任何版本”更改为至少R2019b吗?

在图表目录中,除了循环目录圆柱和EdgeWorthBowley外,不同图表的按钮上的图标是错误的。LINEELCORECTOR显示LINGRADINT的图标,雷达显示了LINEELECTOR的图标,...

谢谢,马丁

肯迪埃利

嗨山姆,
你有R2019B安装了吗?该应用程序需要来自R2019B的各种功能,包括UIHTML和错误消息中引用的新ColorOrder函数。
谢谢,

山姆

嗨ken,
当我安装应用程序时,我有几个错误。你知道如何解决它吗?

使用ChartCatalog(第10行)错误
类“Cataloglauncher”中属性“DefaultColors”的默认值无效:
未定义的功能或变量'colorOrder'。

ChartCatalogApp/startApp错误(第86行)
obj.apphandle = eval('chartCatalog');

ChartCatalogApp(第48行)错误
startapp(obj)

AppInstall.internal.RunApp>执行(第116行)中出现错误
OUT =评估('呼叫者',[脚本';');

AppInstral.Internal.RunApp> RunApp13a(第95行)中出现错误
Outobj = Execute(fullfile(appInstalldir,[wrapperfile'app.m'])));

appInstall.internal.RunApp>前提码18B(第60行)中出错
appobj = runapp13a(appinstalldir);

AppInstall.internal.RunApp(第13行)错误
= preamble18b (appinstalldir);

matlab.apputil.run(第45行)错误
appinstall.internal.RunApp(AppName,Applocation);

肯迪埃利

嗨保罗,

非常感谢反馈。创建热线图图是一个很好的例子。您可以将Colormap与轴相关联如下。

%创建一个数字和轴。
F1 =数字;
斧头=轴(F1);

%将特定的Colormap与轴相关联。
Colormap(AX,Jet(64))
%通过添加彩色栏来可视化此。
彩色杆(斧头)

%接下来,创建一个新图形配备不同的颜色地图。
F2 =图('Colormap',Summer(64));

%将轴移动到新图形,然后检查是否保留了Colormaps。
AX.Parent = F2;

%检查:
Isequal(F2.Colormap,Summer(64))
isequal (ax。Colormap喷气(64))

非常感谢,

保罗o'leary

嗨,
谢谢您的代码,它给了我所需的东西,以便开始一些良好的编程图表。一个评论:

我制作了一个热门地图图表作为入门方式。我使用了一个图像来呈现数字矩阵和ColorMap以设置颜色表示。然而,Colormap与Matlab中的图形相关联,而不是轴。因此,当我更改父级时,它会在新图形窗口的Colormap上进行。也许使“父”属性可以观察到,因此如果它更改,我可以触发“更新”。然而,也许我错过了一些东西。
谢谢保罗

肯迪埃利

嗨马修,
感谢您提供反馈。计划进一步更新此文件Exchange条目。我将有兴趣调查物品(1) - (3)更多细节。请在Mathworks DOT COM上通过简要说明发送电子邮件给我发电子邮件,请参阅Mathworks DOT COM。(4)固定为下一个释放。(5)是一个好主意,如果我们在某个时候将此条目释放为工具箱。
谢谢,

马修

一个漂亮的雄心勃勃的项目。它会让我乐意认为将继续开发这种“图表”对象。

我有一些小问题:
1.“GUI布局工具箱”的检测(对我来说)不一定有效,即使它已经安装。
2. GalleryLauncher使用与该图表相关联的图像来存储图表
3.您真的想用+数据和+练习包污染用户名称空间吗?(?)
4.气缸.MLX.contains a saved error
5.应该(或可以)这个项目具有正确的MATLAB工具箱部分:帮助,内容文件等。

Matlab释放兼容性
用R2021A创建
与R2021A兼容
平台兼容性
窗户 麦克斯 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!