【问题标题】:set values based on scatter plot visualization python基于散点图可视化python设置值
【发布时间】:2021-06-11 11:32:22
【问题描述】:

如果变量位于散点图中的某个部分,是否可以为变量设置标签?还是只能手动?

每个彩色点都是可变的。

that's what I get with help of a scatter plot

因此,我想用一些 python 脚本来获得它,但我不知道如何:

var   | label
-------------
3 65  | low
3 40  | low
7 180 | high
     ...
5 40  | undervalued

【问题讨论】:

    标签: python python-3.x scatter-plot scatter


    【解决方案1】:

    我不知道有任何 matplotlib 函数可以满足您的要求,但您可以使用 annotate 轻松注释您的观点:

    import matplotlib.pyplot as plt
    
    # So starting from your example
    y = [65, 40, 180, 40]
    x = [3, 3, 7, 5]
    labels = ['low', 'low', 'high', 'undervalued']
    
    fig, ax = plt.subplots()
    ax.scatter(x, y)
    
    for i, label in enumerate(labels):
        ax.annotate(label, (x[i], y[i]))
    

    或者,如果您对每个标签都有一些间隔,您可以编写一个返回所需标签的函数,例如:

    import matplotlib.pyplot as plt
    
    # Based on the image you provided
    def get_label(x,y):
        if x<4 and y<100:
            return 'low'
        elif x<4 and y>=100:
            return 'overvalued'
        elif x>=4 and y<100:
            return 'undervalued'
        else:
            return 'high'
    
    y = [65, 40, 180, 40]
    x = [3, 3, 7, 5]
    
    fig, ax = plt.subplots()
    ax.scatter(x, y)
    
    for x_current, y_current in zip(x,y):
        ax.annotate(get_label(x_current, y_current), (x_current, y_current))
    

    您可以在documentation 中找到更多格式。

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 2013-11-01
      • 1970-01-01
      • 2020-06-25
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      相关资源
      最近更新 更多