2
목표는 2D의 구형 히트 맵 플롯을 만드는 것입니다. 직사각형 도메인을 사용하면 선 아래의 플로팅 코드가 작동합니다. 그러나 원형 도메인 용 코드를 사용하려고합니다.파이썬 : 디스크의 열 밀도 플롯
from pylab import *
import numpy as np
from matplotlib.colors import LightSource
from numpy.polynomial.legendre import leggauss, legval
xi = 0.0
xf = 1.0
numx = 500
yi = 0.0
yf = 1.0
numy = 500
def f(x):
if 0 <= x <= 1:
return 100
if -1 <= x <= 0:
return 0
deg = 1000
xx, w = leggauss(deg)
L = np.polynomial.legendre.legval(xx, np.identity(deg))
integral = (L * (f(x) * w)[None,:]).sum(axis = 1)
c = (np.arange(1, 500) + 0.5) * integral[1:500]
def r(x, y):
return np.sqrt(x ** 2 + y ** 2)
theta = np.arctan2(y, x)
x, y = np.linspace(0, 1, 500000)
def T(x, y):
return (sum(r(x, y) ** l * c[:,None] *
np.polynomial.legendre.legval(xx, identity(deg)) for l in range(1, 500)))
T(x, y)
는 l
전력 회 르장 드르 다항식에 x
및 y
의 함수로서 c
계수 배의 반경의 합과 같아야한다 : 구의 반경은 지금까지이 코드는 1이다 논쟁은 legendre 다항식의이다 cos(theta)
이다.
python: integrating a piecewise function에서 나는 합계에서 Legendre 다항식을 사용하는 방법을 배웠지 만 그 방법은 약간 다르며 작도를 위해서는 함수 T(x, y)
이 필요합니다.
이것은 플로팅 코드입니다.
densityinterpolation = 'bilinear'
densitycolormap = cm.jet
densityshadedflag = False
densitybarflag = True
gridflag = True
plotfilename = 'laplacesphere.eps'
x = arange(xi, xf, (xf - xi)/(numx - 1))
y = arange(yi, yf, (yf - yi)/(numy - 1))
X, Y = meshgrid(x, y)
z = T(X, Y)
if densityshadedflag:
ls = LightSource(azdeg = 120, altdeg = 65)
rgb = ls.shade(z, densitycolormap)
im = imshow(rgb, extent = [xi, xf, yi, yf], cmap = densitycolormap)
else:
im = imshow(z, extent = [xi, xf, yi, yf], cmap = densitycolormap)
im.set_interpolation(densityinterpolation)
if densitybarflag:
colorbar(im)
grid(gridflag)
show()
나는 당신이 ('유모'를 떠 (또는 중 도메인 당신이 원하는) 디스크 도메인 외부의 값을 설정하면 내 최종 목표는
저는 이것이 흥미로운 질문이라고 생각합니다.하지만 표현법이 Legendre 다항식 등으로 싸여있는 방식으로, 여러분이 정말로 묻고있는 것을 알아내는 것은 어렵습니다. 디스크에 히트 맵을 만드는 방법을 알고 싶습니까? 그건 흥미로운 것 같습니다. 그렇다면 어쩌면이 질문을 삭제하고 그 질문에 집중하는 다른 질문을 할 수 있습니다. – tom10
@ tom10 디스크에 히트 맵을 만드는 방법을 알고 싶습니다. 또한, 저는 루틴 드르 다항식의 사용법을 방금 배웠고 함수의 설정을 완전히 이해하지 못했기 때문에 루테인 드 다항식의 합계를 어떻게 적용 할 것인지 완전히 이해하지 못했습니다. – dustin
아마도 "디스크상의 히트 맵"과 "Legendre 다항식의 합계 실행"이 별도의 질문으로 더 좋을 수도 있습니까? – tom10