【问题标题】:Pygal: Displaying information for each data pointPygal:显示每个数据点的信息
【发布时间】:2019-07-24 08:33:28
【问题描述】:

我一直在玩 Pygal,为我正在进行的项目创建一些线图。我目前将我的y axis 设置为记录的值,x axisdate / time 进行了测试。但是,我还想将序列号链接到每个数据点。在您将鼠标悬停在数据点上的那一刻,您会以粗体显示 y 值,并在下方显示记录的日期。

有谁知道是否可以将信息链接到数据点而不将它们作为轴标签?

作为参考,我目前将序列号添加到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]

【问题讨论】:

    标签: python sqlalchemy flask-sqlalchemy pygal


    【解决方案1】:

    您可以通过将数据提供为 dicts (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

    【讨论】:

    • 谢谢,前几天想解决这个问题,我只是想在错误的地方生成字典。完美运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2016-11-24
    • 1970-01-01
    相关资源
    最近更新 更多