본문 바로가기
반응형

분류 전체보기128

[파이썬] 점을 평면에 투영하기 (scikit-spatial) 점을 평면에 투영하였을 때, 투영된 점의 좌표를 구하는 방법입니다. 두개의 패키지를 불러옵니다. import numpy as np from skspatial.objects import Plane 투영된 점의 좌표는 아래와 같이 구합니다. point1과 normal1은 평면을 정의하기 위한 점과 법선벡터입니다. 둘다 리스트 형태로 입력하면 됩니다. project_point 는 투영하려는 점이구요. 리스트 형태로 입력하면 됩니다. projected_point는 투영된 점입니다. >>> projected_point = Plane(point=point1, normal=normal1).project_point(project_point) 실제 점을 이용하여 구해봅시다. >>> projected_point=Plane.. 2021. 10. 22.
[파이썬] 벡터,평면,선,원,실린더 등을 다루는 패키지 (scikit-spatial) scikit-spatial 패키지는 넘파이 기반입니다. 아래와 같은 객체를 만들어줍니다. Point Points Vector Line Plane Circle Sphere Triangle Cylinder documentation link : https://scikit-spatial.readthedocs.io/en/stable/objects/toc.html 뿐만 아니라 여러가지 계산도 가능합니다. 각각의 클래스를 불러오는 방법은 아래와 같습니다. 아래는 Points 의 예시입니다. from skspatial.objects import Points 각 객체를 정의하는 방법을 알아봅시다. point = Point([1,2,6]) points = Points([[1, 2, 3], [4, 5, 6], [7, 8, .. 2021. 10. 22.
파이썬에서 stl 파일 다루는 패키지 소개(numpy-stl) STL 파일은 삼각 매쉬형태로 된 3차원 파일입니다. 파이썬에서 STL 파일을 다룰 때는 stl 패키지를 사용합니다. stl 패키지는 numyp 에 의존합니다. array를 사용한다는 말입니다. 아래와 같이 설치합니다. pip install numpy-stl stl 패키지 안에는 아래와 같은 다섯개의 모듈이 있습니다. stl.Mesh stl.main stl.base stl.mesh stl.stl stl 파일을 다룰 때는 mesh 모듈을 사용하며 아래와 같이 불러서 사용합니다. import numpy as np from stl import mesh cat.stl 이라는 파일을 갖고 있다고 합시다. stl을 불러오는 방법은 아래와 같습니다. ctl = mesh.Mesh.from_file('cat.stl') .. 2021. 10. 22.
[파이썬 matplotlib] 이미지맵(imshow) 범위설정하기 [파이썬 matplotlib] 이미지맵(imshow) 범위설정하기 이미지맵의 x축과 y축 범위는 index 로 되어 있습니다. 아래는 예시입니다. import numpy as np import matplotlib.cm as cm from matplotlib import pyplot as plt import scipy.stats as stats X=np.linspace(-4,4,100) Y=np.linspace(-4,4,100) Z=np.zeros((100,100)) for i,x in enumerate(X): for j,y in enumerate(X): Z[i,j]=stats.norm(0, 1).pdf(X[i])*stats.norm(0, 1).pdf(Y[j]) plt.imshow(Z,cm.gray) pl.. 2020. 12. 9.
[파이썬 matplotlib] 정규분포 2변수 이미지맵 (imshow) [파이썬 matplotlib] 정규분포 2변수 이미지맵 (imshow) inshow 함수를 이용하여 정규분포의 이미지맵을 그려봅시다. 등고선그래프라고 생각하시면 됩니다. import numpy as npimport matplotlib.cm as cmfrom matplotlib import pyplot as pltimport scipy.stats as stats X=np.linspace(-4,4,100)Y=np.linspace(-4,4,100) Z=np.zeros((100,100)) for i,x in enumerate(X): for j,y in enumerate(X): Z[i,j]=stats.norm(0, 1).pdf(X[i])*stats.norm(0, 1).pdf(Y[j]) plt.imshow(Z,cm.. 2020. 11. 27.
[파이썬 matplotlib] 이미지맵(imshow)의 원리 imshow는 원하는 사이즈의 픽셀을 원하는 색으로 채워서 만든 그림입니다. 쉽게말하면 원하는 크기의 행렬을 만들어서 각 칸을 원하는 색으로 채우는 것입니다. 각 칸을 채우는 방법은 colormap, RGB, RGBA 의 네가지가 있습니다. 아래 순서로 설명하겠습니다. 1) colormap 디폴트 2) colormap 변경방법 3) RGB 4) RGBA 하나씩 알아봅시다. 1) colormap 디폴트 먼저 3행3열의 행렬을 만들고 각 값을 아래와 같이 채워보겠습니다. import numpy as np from matplotlib import pyplot as plt Z=np.array([[10,0,0],[0,10,0],[0,0,10]]) 행렬형태로 표현하면 아래와 같습니다. 10 0 0 0 10 0 0 .. 2020. 11. 26.
[파이썬 matplotlib] 그래프를 여러 페이지의 pdf로 저장하기 [파이썬 matplotlib] 그래프를 여러 페이지의 pdf로 저장하기 먼저 pdf을 저장할 경로를 설정합니다. import os #확인하는 법current_path=os.getcwd() #변경하는 법os.chdir('원하는 경로') 그래프를 여러 페이지에 저장하는 방법은 먼저 pdf 파일을 생성하고, 생성된 pdf 파일에 한 페이지씩 내용을 추가하는 것입니다. 한 페이지는 savefig 를 기준으로 결정됩니다. savefig 를 하면 한 페이지가 완료됩니다. import numpy as npfrom matplotlib import pyplot as pltfrom matplotlib.backends.backend_pdf import PdfPages # 데이터 생성data = np.random.randn(.. 2020. 11. 26.
[파이썬 matplotlib] 그래프를 그림파일로 저장시 해상도 설정하기 [파이썬 matplotlib] 그래프를 그림파일로 저장시 해상도 설정하기 먼저 그림파일을 저장할 경로를 설정합니다. import os #확인하는 법current_path=os.getcwd() #변경하는 법os.chdir('원하는 경로') 그림파일로 저장할 때는 plt.savefig 메소드를 사용합니다. 확장자를 png,jpeg,tif,pdf 등으로 설정하면 확장자에 해당하는 파일로 저장됩니다. 해상도를 설정할 때는 dpi 옵션을 입력합니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,np.pi,100)Y = np.sin(X) plt.axes(polar=True)plt.plot(X,Y) plt.savefig('myfigure.p.. 2020. 11. 26.
[파이썬 matplotlib] 그래프를 그림파일로 저장시 배경 투명하게 [파이썬 matplotlib] 그래프를 그림파일로 저장시 배경 투명하게 먼저 그림파일을 저장할 경로를 설정합니다. import os #확인하는 법current_path=os.getcwd() #변경하는 법os.chdir('원하는 경로') 그림파일로 저장할 때는 plt.savefig 메소드를 사용합니다. 확장자를 png,jpeg,tif,pdf 등으로 설정하면 확장자에 해당하는 파일로 저장됩니다. 배경을 투명하게 할 때는 transparent 옵션을 true로 설정합니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,np.pi,100)Y = np.sin(X) plt.axes(polar=True)plt.plot(X,Y) plt.save.. 2020. 11. 26.
[파이썬 matplotlib] 그래프를 그림파일 또는 pdf로 저장하기 (png,jpeg,tif,pdf) [파이썬 matplotlib] 그래프를 그림파일 또는 pdf로 저장하기 (png,jpeg,tif,pdf) 먼저 그림파일을 저장할 경로를 설정합니다. import os #현재 작업디렉토리 확인하는 법current_path=os.getcwd() #변경하는 법os.chdir('원하는 경로') 그림파일로 저장할 때는 plt.savefig 메소드를 사용합니다. 확장자를 png,jpeg,tif,pdf 등으로 설정하면 확장자에 해당하는 파일로 저장됩니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,np.pi,100)Y = np.sin(X) plt.axes(polar=True)plt.plot(X,Y) plt.savefig('myfigure... 2020. 11. 26.
[파이썬 matplotlib] 극좌표 그래프 그리는 법 (polar coordinate) [파이썬 matplotlib] 극좌표 그래프 그리는 법 (polar coordinate) 극좌표를 그릴 때는 plt.axes 옵션을 아래와 같이 설정해주면 됩니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,np.pi,100)Y = np.sin(X) plt.axes(polar=True)plt.plot(X,Y) 2020. 11. 25.
[파이썬 matplotlib] 그래프 안에 작은 그래프 넣는 방법 (subfigure) [파이썬 matplotlib] 그래프 안에 작은 그래프 넣는 방법 (subfigure) 그래프 안에 작은 그래프를 그릴 때는 plt.axes 메소드를 사용합니다. 그래프를 추가하는 메소드인데요. 추가될 그래프의 크기를 설정할 수 있습니다. 입력방법은 아래와 같습니다. plt.axes([x좌표,y좌표,가로길이,세로길이]) 네 값 모두 그래프 전체 크기에 대한 비율로 입력됩니다. 아래 예시를 보면 이해가 되실겁니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,100,20)Y1 = XY2 = X**2Y3 = np.sin(X) plt.plot(X,Y1) ax_sub=plt.axes([0.5,0.5,0.2,0.2])ax_sub.plot.. 2020. 11. 25.
[파이썬 matplotlib] 그래프 사이즈 설정 (figsize) [파이썬 matplotlib] 그래프 사이즈 설정 (figsize) 그래프의 사이즈를 설정할 때는 plt.figure 메소드에 figsize 옵션을 설정합니다. 아래와 같은 형식으로 입력합니다. figsize(가로길이,세로길이) 단위는 inch 입니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,100,20)Y1 = XY2 = X**2Y3 = np.sin(X) plt.figure(figsize=(6,8))plt.plot(X,Y1) plt.show() 2020. 11. 25.
[파이썬 matplotlib] 그래프 축 범위 설정 (xlim,ylim) [파이썬 matplotlib] 그래프 축 범위 설정 (xlim,ylim) 그래프 축의 범위를 설정할 때는 ylim, xlim 메소드를 사용합니다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,100,20)Y1 = XY2 = X**2Y3 = np.sin(X) plt.plot(X,Y1)plt.xlim(0,200)plt.ylim(0,150) plt.show() 2020. 11. 24.
[파이썬 matplotlib] 그래프 눈금 스케일 설정 (aspect ratio) [파이썬 matplotlib] 그래프 눈금 스케일 설정 (aspect ratio) 그래프 눈금 스케일을 설정할 때는 plt.axes().set_aspect 메소드를 사용합니다. 디폴트는 auto 입니다. 알아서 이쁘게 그려준다는 뜻입니다. 일단 그래프 하나를 그려봅시다. import numpy as npimport matplotlib.pyplot as plt X = np.linspace(0,100,20)Y1 = X plt.plot(X,Y1)plt.show() 가로축과 세로축 범위가 0~100으로 같지만 출력되는 길이는 다릅니다. 실제 간격을 무시하고 적당한 비율로 예쁘게 출력되었습니다. 실제 비율을 반영하려면 아래와 같은 equal 옵션을 설정해주면 됩니다. import numpy as npimport .. 2020. 11. 24.
반응형