반경에 따라 알파 (불투명도) 값이있는 채움 색상을 사용하여 matplotlib에 타원을 만들고 싶습니다.matplotlib 패치의 색상 그라디언트?
예 : 2D 가우스.
어떤 방법이 있습니까?
이 색 (Gradient facecolor matplotlib bar plot 및 this 등) 충분히 쉽게 그라디언트하지만 원/타원에 대해 동일한 작업을 수행하는 방법을 알아낼 수 없습니다와 직사각형 플롯을 만들 수 있습니다.
반경에 따라 알파 (불투명도) 값이있는 채움 색상을 사용하여 matplotlib에 타원을 만들고 싶습니다.matplotlib 패치의 색상 그라디언트?
예 : 2D 가우스.
어떤 방법이 있습니까?
이 색 (Gradient facecolor matplotlib bar plot 및 this 등) 충분히 쉽게 그라디언트하지만 원/타원에 대해 동일한 작업을 수행하는 방법을 알아낼 수 없습니다와 직사각형 플롯을 만들 수 있습니다.
는 함수 알렉스의 포스트 여기
import matplotlib.pyplot as plt,numpy as np
def gauplot(centers, radiuses, xr=None, yr=None):
nx, ny = 1000.,1000.
xgrid, ygrid = np.mgrid[xr[0]:xr[1]:(xr[1]-xr[0])/nx,yr[0]:yr[1]:(yr[1]-yr[0])/ny]
im = xgrid*0 + np.nan
xs = np.array([np.nan])
ys = np.array([np.nan])
fis = np.concatenate((np.linspace(-np.pi,np.pi,100), [np.nan]))
cmap = plt.cm.gray
cmap.set_bad('white')
thresh = 3
for curcen,currad in zip(centers,radiuses):
curim=(((xgrid-curcen[0])**2+(ygrid-curcen[1])**2)**.5)/currad*thresh
im[curim<thresh]=np.exp(-.5*curim**2)[curim<thresh]
xs = np.append(xs, curcen[0] + currad * np.cos(fis))
ys = np.append(ys, curcen[1] + currad * np.sin(fis))
plt.imshow(im.T, cmap=cmap, extent=xr+yr)
plt.plot(xs, ys, 'r-')
과에서 아이디어를 사용하여 예를 들어 당신이 원하는 위치를
gauplot([(0,0), (2,3), (5,1), (6, 7), (6.1, 6.1)], [.3,. 4, .5, 1, .4], [-1,10], [-1,10])
# centers of circles # radii of circles#
현재 matplotlib
은 패치 용 그라데이션 채우기를 지원하지 않습니다 - this email을 참조하십시오.
john> 안녕하세요, 저는 단색 대신 채우기 패턴으로 막대 (패치 된 일련의 직사각형)를 설정하려고합니다. matplotlib에서이 작업을 수행하는 쉬운 방법이 있습니까?
john> 저는 십자가, 수직, 밀도 등의 패턴을 가진 Qt의 QBrush와 같은 것을 생각하고 있습니다.현재이 기능에 대한 지원이 없습니다. 이 종류의 것을 지원하는 것은 너무 어렵지 않을 것입니다. 기본적으로 API를 지정하고 백엔드에 지원을 추가하려면 이 필요합니다. 나는 패치 (예 : 다각형, 사각형)에 그라데이션 채우기를 추가하려는 경우 두 번 모두 수행하는 것이 좋습니다. 대신 다음 보간
imshow
를 사용 함수와 색상을, 메쉬를 만들 계산할 수있는 패치를 사용
: (체크 무늬 배경을 무시)
# Taken from http://matplotlib.sourceforge.net/examples/pylab_examples/layer_images.html
def func3(x,y):
return (1- x/2 + x**5 + y**3)*exp(-x**2-y**2)
# make these smaller to increase the resolution
dx, dy = 0.05, 0.05
x = arange(-3.0, 3.0, dx)
y = arange(-3.0, 3.0, dy)
X,Y = meshgrid(x, y)
xmin, xmax, ymin, ymax = amin(x), amax(x), amin(y), amax(y)
extent = xmin, xmax, ymin, ymax
fig = plt.figure(frameon=False)
Z2 = func3(X, Y)
im2 = imshow(Z2, cmap=cm.jet, alpha=.9, interpolation='bilinear', extent=extent)
show()
이 다음에 발생합니다 다음은
를 실행 한 다음 투명 패치와 흰색 마스크를 Z-중간 퍼팅 할 때 무엇을 얻을 마커, 평범한 배경에 그라디언트 패치와 같은 것을 더 많이 사용합니다. – cphlewis
나는 접근법을 좋아한다. 나는 그것을 나 자신으로 생각했지만, 몇 가지 이유로 그것을 거부했다. 1. 로그 - 로그 플롯에서 작동하지 않습니다 (패치가 잘 작동하지는 않지만 시도합니다). 2. 플롯 경계에 대한 사전 지식이 필요합니다 (이것은 해결할 수 있지만). 아직도, 잠시 동안 나는 그것으로 굴러 갈 것이다. – keflavich
imshow의 출처는 왼쪽 하단에 있어야한다고 생각합니다. 'plt.imshow (im.T, cmap = cmap, extent = xr + yr, origin = "lower")'. – ImportanceOfBeingErnest