【问题标题】:Matplotlib different colour points depending on range of xMatplotlib 不同的颜色点取决于 x 的范围
【发布时间】:2014-03-25 23:43:28
【问题描述】:

我已经使用 plt.plot() 从我正在使用的数据创建了一个散点图,我想知道是否有一种简单的方法可以根据它们在 x 轴上的位置为点着色?例如,如果它们位于 x0 和 x1 之间,则使它们变为绿色,x1 和 x2 使它们变为蓝色等。有帮助吗?干杯

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    你可以使用plt.scatter:

    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    sns.set_style("white")
    
    x, y =  np.random.multivariate_normal([0, 0], [(1, .5), (.5, 1)], 200).T
    c = np.where(x < 0, "#27ae60", "#2980b9")
    plt.scatter(x, y, 30, c)
    sns.despine()
    

    【讨论】:

    • 我不知道如何将其应用于我的案例。我也错了,它是我用来绘制图表的 plt.semilogx()。
    • 如果您致力于使用plt.plotsemilogx 在幕后使用),您将必须对数据进行分箱并分别绘制每个分箱。使用scatter,您可以为每个点传递一组颜色。对于您的情况,您可以在使用scatter 绘图之前执行ax.set_xscale("log")
    • 我还在苦苦挣扎。 scatter() 中的 30 是多少?我需要“#27ae60”、“#2980b9”这些位还是可以摆脱它们?
    • 30 是点的大小,两个十六进制数字是与您看到的绿色和蓝色相对应的颜色。查看plt.scatter 的文档字符串以获取更多信息。
    • 啊,是的,我知道它现在在做什么,谢谢。我将如何改变它以获得更多具有不同颜色的范围?即绿色/蓝色/红色
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2021-07-30
    • 2021-06-19
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    相关资源
    最近更新 更多