1

我正在编写一个导入数据文件并绘制数据的程序。用户使用基于特征的 ui 中的按钮添加和删除图。我已经完成了所有这些工作,但我想添加一个工具,允许用户在绘图上选择一条线以对其执行操作(更改颜色、删除等)。我能找到的唯一例子是在散点图上选择单个点。

有时图彼此非常紧密地重叠,所以我设想的解决方案是在鼠标悬停时,线图将以某种方式突出显示(该数据集的线宽扩展)。如果用户单击该行,我需要获得一些关于选择了哪个绘图的反馈(例如绘图的名称或索引),以便我可以允许对选择执行操作。这是我生成绘图的代码部分:

#-------------------------------
# Generate chaco plot from list of data
def generatePlot(self):
    #Turn data list into arrayplotdata
    plotdata = ArrayPlotData()
    for i in range(len(self.dataList)):
        plotdata.set_data('x' + str(i), self.dataList[i][0])
        plotdata.set_data('y' + str(i), self.dataList[i][1])
    #Add plots of each arrayplotdata set
    dataPlot = Plot(plotdata)
    for i in range(len(self.dataList)):
        renderer = dataPlot.plot(('x' + str(i), 'y' + str(i)), color=getColor(i),   line_width=2, name=self.labelList[i])[0]
    #Format Plot  
    dataPlot.value_scale = 'log'
    dataPlot.title = 'IV Curve Comparison'
    dataPlot.x_axis.title = 'Bias (V)'
    dataPlot.y_axis.title = 'Current (A/cm' + u"\u00B2" + ')'
    dataPlot.y_axis.tick_label_formatter = lambda val: floatToString(val)
    dataPlot.padding_left = 100
    #Legend
    dataPlot.legend.visible = True
    dataPlot.legend.align = 'lr'
    dataPlot.legend.labels = self.labelList
    dataPlot.legend.tools.append(LegendTool(dataPlot.legend, drag_button='left'))

    self.dataPlot = dataPlot

这是此时界面的图像,其中绘制了导入的数据,让您了解我想要做什么:http: //i.stack.imgur.com/einry.png

4

0 回答 0