2017-03-31 1 views
2

Gibt es sowieso die Anzahl der Pfeilspitzen auf einem Matplotlib Streamplot zu erhöhen? Im Moment scheint es so, als ob drei nur eine Pfeilspitze pro Stromlinie wären, was ein Problem ist, wenn ich zu den X/Y-Achsen-Grenzen wechseln möchte, um die Daten zu vergrößern.Anzahl der Pfeilspitzen auf Matplotlib Streamplot

Antwort

2

Ich bin nicht sicher über nur die Anzahl der Pfeilspitzen zu erhöhen - aber man kann die Dichte von Stromlinien mit den Dichte Parametern in der streamplot Funktion erhöhen, dann ist hier die Dokumentation:

*density* : float or 2-tuple 
    Controls the closeness of streamlines. When `density = 1`, the domain 
    is divided into a 30x30 grid---*density* linearly scales this grid. 
    Each cell in the grid can have, at most, one traversing streamline. 
    For different densities in each direction, use [density_x, density_y]. 

Hier ist ein Beispiel:

import matplotlib.pyplot as plt 
import numpy as np 

x = np.arange(0,20,1) 
y = np.arange(0,20,1) 

u=np.random.random((x.shape[0], y.shape[0])) 
v=np.random.random((x.shape[0], y.shape[0])) 


fig, ax = plt.subplots(2,2) 

ax[0,0].streamplot(x,y,u,v,density=1) 
ax[0,0].set_title('Original') 

ax[0,1].streamplot(x,y,u,v,density=4) 
ax[0,1].set_xlim(5,10) 
ax[0,1].set_ylim(5,10) 
ax[0,1].set_title('Zoomed, higher density') 

ax[1,1].streamplot(x,y,u,v,density=1) 
ax[1,1].set_xlim(5,10) 
ax[1,1].set_ylim(5,10) 
ax[1,1].set_title('Zoomed, same density') 

ax[1,0].streamplot(x,y,u,v,density=4) 
ax[1,0].set_title('Original, higher density') 

fig.show() 

enter image description here

Verwandte Themen