【问题标题】:Set varying marker color with matplotlib plot使用 matplotlib 图设置不同的标记颜色
【发布时间】:2019-12-05 06:18:55
【问题描述】:

matplotlib 中,我可以使用clist 中给出的不同标记颜色的散点图。 注意:clist 的大小与ydata 相同,即分别指定每个标记的颜色。

plt.scatter(xdata, ydata, marker='o', c=clist)

我可以有类似plt.plot 的东西吗?

【问题讨论】:

    标签: matplotlib


    【解决方案1】:

    相当于

    plt.scatter(xdata, ydata, marker='o', c=clist)
    

    plt.gca().set_prop_cycle(plt.cycler("color", clist))
    plt.plot(np.atleast_2d(xdata), np.atleast_2d(ydata), marker="o")
    

    当然你也可以使用循环。一般来说,在这种情况下,我建议只使用scatter

    【讨论】:

      【解决方案2】:

      这是一种基于 here 标记的技巧的解决方案。

      import itertools
      import matplotlib.pyplot as plt
      
      colors = itertools.cycle(('r', 'g', 'b', 'c', 'k')) 
      
      for n in range(5):
          plt.plot(n, n**2, marker = 'o', color=next(colors), linestyle='')
      

      【讨论】:

      • clist 的大小与ydata 相同,即分别指定每个标记的颜色。如果我使用我的clist 而不是你的colors,这会起作用吗?这对于数千个数据点是否具有合理的性能?
      • @sancho.sReinstateMonica :如果您用相同的(....) 格式的列表替换('r', 'g', 'b', 'c', 'k'),它应该可以工作。对于性能,我会简单地使用%timeit 来测量时间
      • scatter 接受c:1) 单色格式字符串。 2) 长度为 n 的一系列颜色规范。 3) 使用 cmap 和 norm 映射到颜色的 n 个数字序列。 4) 一个二维数组,其中行是 RGB 或 RGBA。而plot 接受color“任何matplotlib 颜色”。这会一样吗?或者我应该在我的clist 之前转换(主要是floats 的列表)?
      猜你喜欢
      • 2014-12-16
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 2016-11-13
      相关资源
      最近更新 更多