2011-11-17 8 views
6

Matplotlib'de x'in bir fonksiyonu olarak tek bir satırın çizgi genişliğini nasıl değiştireceğini bilen var mı? Örneğin, x'in küçük değerleri için ince çizgi ve x'in büyük değerleri için nasıl kalın yaparsınız?Matplotlib'de x'in bir fonksiyonu olarak tek bir satır değişiminin çizgisini nasıl çizersiniz?

+0

istediğini açıklamak Can: istiyorsun hızlı bir örnek olarak başlangıç ​​ve bitiş çizgisi Sadece dikey bir çizgi mi? Ayrıca, şu ana kadar ne denediniz, sorunlarınız neler? – Yann

+0

Temel fikir, bir x değerleri dizisi, ve y değerleri dizisi ve her noktada linewidth olmasını istediğim bir dizi olduğudur. Bir satır grafiği çizdiğinizde, linewidth anahtar kelimesi yalnızca tek bir sayı alır. Bir dizi değer almasını sağlamanın bir yolunu bulamıyorum. – cmk24

cevap

8

Temel olarak, bir satır yerine çokgen kullanmanız gerekir.

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

Yoksa açıklamanızda yakın bir şey istiyorsanız:

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() 

İlgili konular