一、简介
Glueviz是一种交互式的可视化软件,对于探索和分析多维数据具有非常强大的功能。它支持各种数据格式,如FITS和CSV等,可让用户轻松地创建数据集,访问和可视化它们,并快速生成复杂的可视化图表。
二、使用glueviz探索数据
首先,我们需要了解如何使用glueviz来探索数据集。在载入数据集时,glueviz将数据集作为不同的数据集视图显示在窗口中,可以切换不同的视图并可视化它们。例如,展示一个FITS文件,其包含了不同的表,每个表对应一个数据集:
import glue_jupyter as gj from astropy.io import fits hdulist = fits.open('data.fits') table1 = hdulist[1].data table2 = hdulist[2].data app = gj.jglue() app.add_data(table1, label='Table 1') app.add_data(table2, label='Table 2') app
通过上面的代码,我们可以看到在glueviz生成的界面中打开了两个视图,分别是“Table 1”和“Table 2”。用户可以通过点击不同的视图,来分析和挖掘数据。
三、通过可视化研究数据
Glueviz最有用的功能是可视化研究数据。除了在常见的2D或3D空间中进行可视化之外,它还可以将数据映射到颜色、大小、形状等视觉属性上,从而观察数据集中更多的细节。例如,我们可以使用table1中的“位置X”和“位置Y”列创建一个散点图:
scat = app.scatter2d('Table 1.PositionX', 'Table 1.PositionY') scat.style.size = 'Table 1.Flux'
上面的代码部分中,“Flux”列决定了散点的大小。颜色、形状和其他视觉属性也可以用同样的方法控制。
四、自定义数据可视化工具
Glueviz还支持用户自定义可视化工具,这意味着用户可以创建自己的可视化脚本文件,并与glueviz集成。这种自定义工具非常适合特定的数据需求,可以大大提高效率和灵活性。例如,我们可以创建一个名为“my_vis.py”的文件,其中包含以下代码:
from glue.config import viewer_tool from glue.plugins.tools import ScatterTool from glue.viewers.scatter.qt import ScatterWidget class MyScatter(ScatterTool): icon = 'myicon.png' tool_id = 'my_scatter' tool_name = 'My Scatter' def __init__(self, viewer): super(MyScatter, self).__init__(viewer) self.mode = 'xy' self.viewer = viewer self.widget = ScatterWidget(viewer.state) viewer_tool(MyScatter)
然后,我们可以把“my_vis.py”导入glueviz,并使用My Scatter工具来探索数据集:
import my_vis app = gj.jglue() app.add_data(table1, label='Table 1') app.add_data(table2, label='Table 2') app.choose_widget('My Scatter')
通过上面的代码我们可以使用“My Scatter”工具在glueviz中执行数据探索。
五、与Python交互的命令行窗口
Glueviz内置有一个强大的命令行窗口,用户可以在此窗口中使用Python脚本与glueviz进行交互。正如我们之前所演示的,可以在此处导入自定义脚本所需的程序库并在窗口中执行自己的Python脚本,以与数据集交互。
例如,以下代码展示了如何在命令行窗口中查找给定范围内的所有点:
scatter_widget = app.scatter2d('Table 1.PositionX', 'Table 1.PositionY') mask = (table1['PositionX'] >= 0) & (table1['PositionX'] <= 100) & (table1['PositionY'] >= 0) & (table1['PositionY'] <= 100) indices = np.where(mask)[0] scatter_widget.mark_selected(indices)
在以上代码中,我们先通过Scatter2d将数据集可视化,然后将代码移动到命令行窗口中。通过使用Python中的布尔运算符,我们可以筛选出在给定范围内的点,然后使用mark_selected在可视化窗口中标记选定的点。
六、小结
总结来说,glueviz是一种非常实用的数据可视化工具,它的强大功能可以帮助我们更好地理解和分析数据。探索数据集时,可以选择不同的视图,操作方便灵活。并且glueviz支持自定义可视化工具,以解决更特殊的需求。最后,内置的命令行窗口方便用户与Python脚本进行交互和执行。