Linking plotted data with color and size sources in MATLAB

二次信任 提交于 2019-12-23 18:12:39

问题


This question is related to the question posted here, in which I outline a problem I'm facing regarding rapid visualization of 3D scatter plotted data in MATLAB during a simulation. (Sample code and data are also provided there.)

As an alternative to setting the XData, YData, ZData, SizeData, and CData properties of a 3D scatter plot in MATLAB, I'm wondering if it's possible to have all of their corresponding sources be dynamically linked to points that are 3D scatter plotted. The linked values would be queued into a buffer and plotted periodically (say, every 0.5 s). From what I understand, the sources are refreshed in the background, so plots with linked data would not slow down the simulation. From what I see in the documentation, only XDataSource, YDataSource, and ZDataSource are specified. Is dynamically linking the size and color data sources also possible, and if not, is there a simple workaround?

As a reminder, I'm using MATLAB R2016a on Windows 7.


回答1:


Is dynamically linking the size and color data sources also possible, and if not, is there a simple workaround?

Yes, it is possible using the similarly named properties

  • SizeDataSource
  • CDataSource

These properties are set to the string names of the variables you want linked for updating. Then, with linking on, subsequent updates to these named variables will be reflected in your plots ever 1/2 second or so (at the fastest).

But, there is a big caveat here with your specific example.

The xxxxSource fields are typically initialized at the outset, when a graphic handle is created. This would be in your initial scatter3 calls.

The issue is that you have eight separate scatter plot handles, each referencing the same variable(s), but with different indexes. That is, you are updating the indices into these variables to produce your images.

A brute force way to use parameter linking here would be to create eight different variable names and link each to its corresponding scatter plot handle.

I think the cleaner solution is to use a timer callback to update things on a set time interval.



来源:https://stackoverflow.com/questions/45527533/linking-plotted-data-with-color-and-size-sources-in-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!