我正在编写一个导入数据文件并绘制数据的程序。用户使用基于特征的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