Pygal:显示每个数据点的信息

Pygal: Displaying information for each data point

我一直在研究 Pygal,为我正在进行的项目创建一些折线图。我目前将我的 y axis 设置为记录的值,x axis 是进行测试的 date / time。不过我也想 link 每个数据点的序列号。当您将鼠标悬停在数据点上时,您会得到粗体的 y 值,而在下方则得到记录的日期。

有谁知道是否可以 link 数据点信息而不用它们作为轴标签?

作为参考,我目前已将序列号添加到 list: 'sn_list'

        for row in line_graph_query:
            if str(row.date_time) >= start_date and str(row.date_time) <= end_date :
                min_values.append(float(row.minimum_value))
                max_values.append(float(row.maximum_value))
                recorded_values.append(float(row.recorded_value))
                sn_list.append(row.product_serial_number)
                date_list.append(row.date_time)
                number_of_records = number_of_records + 1
        print(min_values)
        print(max_values)
        print(recorded_values)
        distance_x_axis = math.floor(number_of_records/6)
        line_chart = pygal.Line(no_data_text='No result found', style=custom_style,x_labels_major_every=distance_x_axis, x_label_rotation=20, show_minor_x_labels=False )
        line_chart.title = 'Detailed Results of '+test_name+' tests of '+board_pn
        line_chart.x_labels = map(str,date_list)
        line_chart.add('Minimum', min_values)
        line_chart.add('Maximum', max_values)
        line_chart.add('Recorded', recorded_values)
        graph_render.append(line_chart.render_data_uri())
        graphs_to_render[test_name] = graph_render[-1]

您可以通过以字典形式提供数据 (see the documentation here) 将工具提示设置为您喜欢的任何文本。每个值都应由至少具有 value 属性的 dict 表示,这与您直接提供给图表的值相同。然后您可以设置许多其他属性,其中包括 label.

您应该能够通过更改 if 结构中附加数据的三行来获得所需的工具提示:

min_values.append({"value": float(row.minimum_value),
                   "label": row.product_serial_number})
max_values.append({"value": float(row.maximum_value),
                   "label": row.product_serial_number})
recorded_values.append({"value": float(row.recorded_value),
                        "label": row.product_serial_number})

除非您在其他地方使用它,否则这也意味着您不需要 sn_list