histograma gráfico de estilo de línea en matplotlib

Necesito trazar dos histogramas en la misma figura, y no se superponen. Yo uso de comandos como

plt.hist(data1,bins=40,normed=True,histtype='step')
plt.hist(data2,bins=40,normed=True,histtype='step')

Para distinguir estos dos diferentes histogramas (necesario presentarlas en negro y blanco), yo quiero hacer uno de ellos aparecerá en la línea de guiones en lugar de la línea sólida, así que traté de

plt.hist(data1,bins=40,normed=True,histtype='step',ls='--')

que me dio el siguiente mensaje de error:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 1475, in __call__
    return self.func(*args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 534, in callit
    func(*args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_tkagg.py", line 363, in idle_draw
    self.draw()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_tkagg.py", line 348, in draw
    FigureCanvasAgg.draw(self)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_agg.py", line 451, in draw
    self.figure.draw(self.renderer)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/artist.py", line 56, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/figure.py", line 1035, in draw
    func(*args)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/artist.py", line 56, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/axes.py", line 2088, in draw
    a.draw(renderer)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/artist.py", line 56, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/patches.py", line 401, in draw
    gc.set_linestyle(self._linestyle)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backend_bases.py", line 962, in set_linestyle
    raise ValueError('Unrecognized linestyle: %s' % str(style))
ValueError: Unrecognized linestyle: --

Mi pregunta es, ¿cómo puedo cambiar el estilo de línea (continuas o discontinuas y color)? O hay una forma alternativa de parcela estos dos histogramas deseados, con los estilos de línea?

InformationsquelleAutor wdg | 2014-01-23

1 Kommentar

  1. 13

    Han importado todas las librerías que necesitas? También, a veces, no linestyles están disponibles para todos los tipos de gráficos. Hay linestyles que trabajan para las parcelas que no funcionan en los vectores (aunque parece que debería), por ejemplo. Cuando el nombre del símbolo no funciona ‘–‘ es una buena idea para probar la versión con nombre ‘discontinuo’.

    Puede proporcionar una tupla de linestyles (o colores, anchos, etc.) en la parcela argumento muy similar a cómo se hace para linewidths en este ejemplo de la matplotlib docs (Ctrl+F para anchuras de línea)

    El uso de su parcela de comandos, debería ser algo como:

    plt.hist(data1,bins=40,normed=True,histtype='step',linestyle=('solid','dashed'))

    Hay un color argumento puede especificar justo como linestyle fue hecho. Cuando las líneas se trazan, pyplot se ve en el primer elemento de cada tupla que usted proporcione. Así que si usted quería una línea negra y una línea discontinua de color amarillo se vería

    plt.hist(data1,bins=40,normed=True,histtype='step',linestyle=('solid','dashed'),color=('black','k'))

    Tan «sólido» debe emparejar con el ‘negro’ y ‘discontinuo’ debe vincular con ‘k’. Esto debería funcionar para cualquier otra línea de las propiedades que desee usar.

    • configuración de linestyle=('dashed') hace el trabajo. Ya que usted menciona sobre el color, ¿cómo puedo ajustar el color de esta manera? Traté de linestyle=('dahsed','black') y linestyle=('dashed','k') pero que no funcionan.
    • Trató de un comentario aquí abajo, decidió actualizar responder en su lugar.
    • Creo que se puede estructurar su respuesta mejor (como escribir comandos separados por data1 y data2), pero he aceptado tu respuesta de todos modos.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea