2011-11-17 10 views
6

Czy ktoś wie, jak zrobić szerokość linii jednej zmiany linii w funkcji x w matplotlib? Na przykład, w jaki sposób utworzyć cienką linię dla małych wartości x, a grubą dla dużych wartości x?Jak zrobić szerokość linii jednej zmiany linii w funkcji x w matplotlib?

+0

Czy możesz wyjaśnić, co chcesz: skąd ma się linia na początek i na końcu? Czy to tylko pionowa linia? Co jeszcze próbowałeś, z czym masz problemy? – Yann

+0

Podstawową ideą jest to, że mam tablicę wartości xi tablicę wartości y oraz tablicę tego, co chcę, aby szerokość linii znajdowała się w każdym punkcie. Problem polega na tym, że podczas kreślenia linii słowo kluczowe linewidth ma tylko jedną liczbę. Nie mogę znaleźć żadnego sposobu, aby zmusić go do przyjęcia szeregu wartości. – cmk24

Odpowiedz

8

Zasadniczo zamiast wiersza należy użyć wielokąta. Jako szybki przykład:

import numpy as np 
import matplotlib.pyplot as plt 

# Make the original line... 
x = np.linspace(0, 10, 100) 
y = 2 * x 
thickness = 0.5 * np.abs(np.sin(x) * np.cos(x)) 

plt.fill_between(x, y - thickness, y + thickness, color='blue') 
plt.show() 

enter image description here

Albo jeśli chcesz coś bliżej do opisu:

import numpy as np 
import matplotlib.pyplot as plt 

# Make the original line... 
x = np.linspace(0, 10, 100) 
y = np.cos(x) 
thickness = 0.01 * x 

plt.fill_between(x, y - thickness, y + thickness, color='blue') 
plt.show()