• <i id='uP470'><tr id='uP470'><dt id='uP470'><q id='uP470'><span id='uP470'><b id='uP470'><form id='uP470'><ins id='uP470'></ins><ul id='uP470'></ul><sub id='uP470'></sub></form><legend id='uP470'></legend><bdo id='uP470'><pre id='uP470'><center id='uP470'></center></pre></bdo></b><th id='uP470'></th></span></q></dt></tr></i><div id='uP470'><tfoot id='uP470'></tfoot><dl id='uP470'><fieldset id='uP470'></fieldset></dl></div>
    <tfoot id='uP470'></tfoot>
      <legend id='uP470'><style id='uP470'><dir id='uP470'><q id='uP470'></q></dir></style></legend>

          <bdo id='uP470'></bdo><ul id='uP470'></ul>

      1. <small id='uP470'></small><noframes id='uP470'>

        我可以在matplotlib中画一条多色线吗?

        时间:2024-04-20
        <tfoot id='yyMWU'></tfoot><legend id='yyMWU'><style id='yyMWU'><dir id='yyMWU'><q id='yyMWU'></q></dir></style></legend>

        • <bdo id='yyMWU'></bdo><ul id='yyMWU'></ul>
            <tbody id='yyMWU'></tbody>

            <small id='yyMWU'></small><noframes id='yyMWU'>

          • <i id='yyMWU'><tr id='yyMWU'><dt id='yyMWU'><q id='yyMWU'><span id='yyMWU'><b id='yyMWU'><form id='yyMWU'><ins id='yyMWU'></ins><ul id='yyMWU'></ul><sub id='yyMWU'></sub></form><legend id='yyMWU'></legend><bdo id='yyMWU'><pre id='yyMWU'><center id='yyMWU'></center></pre></bdo></b><th id='yyMWU'></th></span></q></dt></tr></i><div id='yyMWU'><tfoot id='yyMWU'></tfoot><dl id='yyMWU'><fieldset id='yyMWU'></fieldset></dl></div>

                1. 本文介绍了我可以在matplotlib中画一条多色线吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试创建一条满足特定条件的彩色线条。基本上,我希望这条线在y轴向下指向时显示为红色,在向上指向时显示为绿色,在两者都不显示时显示为蓝色。

                  我发现了一些类似的示例,但我始终无法将它们转换为在轴上使用lot()。我只是想知道怎么才能做到这一点。

                  以下是我到目前为止编写的一些代码:

                  #create x,y coordinates
                  x = numpy.random.choice(10,10)
                  y = numpy.random.choice(10,10)
                  
                  #create an array of colors based on direction of line (0=r, 1=g, 2=b)
                  colors = []
                  #create an array that is one position away from original 
                  #to determine direction of line 
                  yCopy = list(y[1:])
                  for y1,y2 in zip(y,yCopy):
                      if y1 > y2:
                          colors.append(0)
                      elif y1 < y2:
                          colors.append(1)
                      else:
                          colors.append(2)
                  #add tenth spot to array as loop only does nine
                  colors.append(2)
                  
                  #create a numpy array of colors
                  categories = numpy.array(colors)
                  
                  #create a color map with the three colors
                  colormap = numpy.array([matplotlib.colors.colorConverter.to_rgb('r'),matplotlib.colors.colorConverter.to_rgb('g'),matplotlib.colors.colorConverter.to_rgb('b')])
                  
                  #plot line
                  matplotlib.axes.plot(x,y,color=colormap[categories])
                  

                  不确定如何让lot()接受颜色数组。我总是收到关于用作颜色的格式类型的错误。尝试了十六进制、十进制、字符串和浮点数。与Scatter()配合使用非常理想。

                  matlab

                  我不认为您可以在plot中使用颜色数组(文档说颜色可以是任何推荐答案颜色,而scatter文档说您可以使用数组)。

                  但是,您可以通过单独绘制每行来伪造它:

                  import numpy
                  from matplotlib import pyplot as plt
                  
                  x = range(10)
                  y = numpy.random.choice(10,10)
                  for x1, x2, y1,y2 in zip(x, x[1:], y, y[1:]):
                      if y1 > y2:
                          plt.plot([x1, x2], [y1, y2], 'r')
                      elif y1 < y2:
                          plt.plot([x1, x2], [y1, y2], 'g')
                      else:
                          plt.plot([x1, x2], [y1, y2], 'b')
                  
                  plt.show()
                  

                  这篇关于我可以在matplotlib中画一条多色线吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:有没有办法在Matplotlib中创建不连续的轴? 下一篇:如何显示matplotlib图?

                  相关文章

                2. <legend id='NRx6c'><style id='NRx6c'><dir id='NRx6c'><q id='NRx6c'></q></dir></style></legend>

                  <small id='NRx6c'></small><noframes id='NRx6c'>

                    <bdo id='NRx6c'></bdo><ul id='NRx6c'></ul>
                  <i id='NRx6c'><tr id='NRx6c'><dt id='NRx6c'><q id='NRx6c'><span id='NRx6c'><b id='NRx6c'><form id='NRx6c'><ins id='NRx6c'></ins><ul id='NRx6c'></ul><sub id='NRx6c'></sub></form><legend id='NRx6c'></legend><bdo id='NRx6c'><pre id='NRx6c'><center id='NRx6c'></center></pre></bdo></b><th id='NRx6c'></th></span></q></dt></tr></i><div id='NRx6c'><tfoot id='NRx6c'></tfoot><dl id='NRx6c'><fieldset id='NRx6c'></fieldset></dl></div>

                    <tfoot id='NRx6c'></tfoot>