본문 바로가기
반응형

분류 전체보기128

pyvista 원근법 설정 전후 비교 코드는 아래와 같습니다. 원근법을 끌 때는 enable_parallel_projection( ) 메소드를 사용합니다. import pyvista as pv from pyvista import demos pl = pv.demos.orientation_plotter() pl.enable_parallel_projection() #원근법 제거 pl.show() 아래 왼쪽 그림은 원근법을 끈 경우이고, 오른쪽 그림은 원근법을 킨 경우입니다. 2023. 12. 15.
numpy-stl mesh 데이터를 pyvista PolyData 로 바꾸기가 힘든 이유 numpy-stl 의 mesh 모듈에서 stl 을 생성하는 방식을 먼저 알아보겠습니다. mesh 모듈에서는 하나의 face 를 구성하는 점의 좌표만을 이용하여 face 를 정의합니다. 어떤 face1 을 구성하는 점의 좌표가 p1,p2,p2 라고 한다면 아래와 같이 정의되는 것입니다. face1=[p1,p2,p3] p1,p2,p3는 각각 크기가 3인 벡터입니다. 반면! pyvista 는 사용할 점들을 모아놓은 배열을 정의하고, 배열의 인덱스를 가져다가 face 를 정의합니다. 예를들어 face1 을 구성하는 점이, 점들을 모아놓은 배열에서 각각 2,8,4 번째라면 face1 은 아래와 같이 정의됩니다. face1=[2,8,4] 자, 이제 numpy-mesh 로 정의된 stl 을 pyvista 로 변환해야.. 2023. 12. 8.
파이썬 STL 시각화 패키지 numpy-stl 글 하나로 끝내기 오늘 사용할 stl 은 아래와 같습니다. 다운받아서 사용하시면 됩니다. 먼저 stl을 불러와봅시다. 코드는 아래와 같습니다. import os from stl import mesh import numpy as np #stl이 있는 폴더 경로 path="폴더경로" #폴더 경로를 현재 디렉토리로 os.chdir(converted_path) #stl 불러오기 cat = mesh.Mesh.from_file('cat.stl') 데이터를 살펴봅시다. 아래와 같이 콘솔창이 입력합니다. >>> cat 데이터타입이 stl.mesh.Mesh 라는 것을 알 수 있습니다. 1. 각 매쉬 별 점 정보를 알고 싶어요! 아마 우리는 각 삼각매쉬를 형성하고 있는 점 정보를 주로 다룰 것입니다. 각 매쉬는 세개의 점으로 구성되어 있습.. 2023. 12. 8.
파이썬 STL 시각화 패키지 pyvista 글 하나로 끝내기 오늘 사용할 stl 은 아래와 같습니다. 다운받아서 사용하시면 됩니다. 먼저 stl을 불러와봅시다. 코드는 아래와 같습니다. import os import pyvista as pv #stl이 있는 폴더 경로 path="폴더경로" #폴더 경로를 현재 디렉토리로 os.chdir(converted_path) #stl 불러오기 cat = pv.read('cat.stl') 데이터를 살펴봅시다. 아래와 같이 콘솔창이 입력합니다. >>> cat PolyData (0x229750ded40) N Cells: 70576 N Points: 35290 X Bounds: -6.278e+03, 6.278e+03 Y Bounds: -2.226e+04, 3.863e+04 Z Bounds: 5.300e+00, 3.761e+04 N A.. 2023. 12. 8.
[numpy-stl] stl 생성 원리 numpy-stl 에서 정사면체를 생성하는 예제는 아래와 같습니다. import numpy as np from stl import mesh # mesh points vertices = np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [0, 0, 1]]) # mesh faces faces = np.array([[0,1,2], # square [0,1,3], # triangle [0,2,3], [1,2,3]]) # triangle # Create the mesh cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype)) for i, f in enumerate(faces): for j in range(3): cube.vec.. 2023. 5. 26.
[파이썬 OpenGL] 1. 파이썬 및 패키지 설치 파이썬 설치 과정은 쉽게 찾을 수 있으므로 생략합니다. 파이썬을 설치한 후 아래 패키지를 설치해줍니다. Pygame : GUI를 만들기 위한 패키지 Numpy : 수치계산을 위한 패키지 PyOpenGL : 파이썬에서 OpenGL 을 사용할 수 있도록 함 PyOpenGL_accelerate : 파이썬에서 OpenGL 을 사용할 수 있도록 함 2023. 5. 2.
파이썬 그리드 격자(meshgrid) 만드는 법과 원리 아래와 같은 네 점을 표현하고 싶다고 합시다. 네 점의 좌표는 아래와 같습니다. (1,1) (1,2) (2,1) (2,2) x와 y 따로 배열 형태로 입력해야합니다. numpy array 를 이용하여 아래와 같이 입력할 수 있습니다. x=np.array([1,1,2,2]) y=np.array([1,2,1,2]) 이정도는 할만 한데 아래와 같이 입력하고 싶은 경우를 생각해봅시다. 25개의 점이므로 x 값 25개와 y값 25개를 각각 배열로 입력해야합니다. 이 과정을 편하게 해주는 함수가 meshgrid 입니다. 아래와 같이 입력하면 끝납니다. x=np.array([1,2,3,4,5]) y=np.array([1,2,3,4,5]) x,y=np.meshgrid(x,y) x와 y는 각각 5by5 의 2차원 배열이.. 2023. 1. 16.
[파이썬 matplotlib] 그래프 마진 변경 (패딩 변경) 그래프를 그리다 보면 아래와 같이 글자가 잘리는 경우가 있습니다. 사용된 코드는 아래와 같습니다. from sklearn.datasets import load_breast_cancer import pandas as pd import matplotlib.pyplot as plt cancer= load_breast_cancer() df=pd.DataFrame(cancer.data) df.columns=cancer.feature_names df.boxplot().plot() plt.xticks(rotation=90) plt.show() 이런 경우 간격을 자동으로 설정해주는 메소드가 있습니다. plt.tight_layout() 메소드를 사용하면 됩니다. 코드는 아래와 같이 추가합니다. from sklearn.d.. 2022. 11. 3.
[파이썬 matplotlib] 그래프 축 눈금값 크기 설정 그래프 축 눈금값의 크기를 설정하는 방법입니다. xticks 또는 yticks 메소드 안에 fontsize 옵션을 설정해 주면 됩니다. 예시는 아래와 같습니다. import matplotlib.pyplot as plt import pandas as pd md=pd.DataFrame( {'X':[1,2,3],'Y':[2,4,10] } ) #그래프 생성 plt.plot(md['X'],md['Y']) #축 눈금 설정 plt.xticks([0,2,4],fontsize=15) plt.yticks([1,2,3,4,10],fontsize=20) #그래프 출력 plt.show() 2022. 3. 28.
[파이썬 matplotlib] 그래프 축 눈금 회전하기 그래프 축 눈금을 회전할 때는, 축 눈금을 설정한 뒤 rotation 옵션에 원하는 회전각도를 넣어주면 됩니다. 양수가 반시계방향, 음수가 시계방향 회전입니다. import matplotlib.pyplot as plt import pandas as pd md=pd.DataFrame( {'X':[1,2,3],'Y':[2,4,10] } ) #그래프 생성 plt.plot(md['X'],md['Y']) #축 눈금 설정 plt.xticks([0,2,4],rotation=-45) plt.yticks([1,2,3,4,10],rotation=90) #그래프 출력 plt.show() 2022. 3. 18.
[파이썬 matplotlib] 그래프 축 눈금 값을 원하는 값으로 축 눈금을 설정한 뒤, 눈금 값을 리스트로 입력해주면 됩니다. 아래 예시를 참고하세요. import matplotlib.pyplot as plt import pandas as pd md=pd.DataFrame( {'X':[1,2,3],'Y':[2,4,10] } ) #그래프 생성 plt.plot(md['X'],md['Y']) #축 눈금 설정 plt.xticks([0,2,4],['a','b','c']) plt.yticks([1,2,3,4,10],['A','B','C','D','E']) #그래프 출력 plt.show() 2022. 3. 18.
[파이썬 matplotlib] 그래프 축 눈금 설정 (ticks) 그래프 축 눈금 설정하는 메소드는 아래와 같습니다. x축 눈금 설정 메소드 : xticks y축 눈금 설정 메소드 : yticks 아래 예시를 통해 사용 방법을 알아봅시다. import matplotlib.pyplot as plt import pandas as pd md=pd.DataFrame( {'X':[1,2,3],'Y':[2,4,10] } ) #그래프 생성 plt.plot(md['X'],md['Y']) #축 눈금 설정 plt.xticks([0,2,4]) plt.yticks([1,2,3,4,10]) #그래프 출력 plt.show() 2022. 3. 18.
[파이썬 matplotlib] 분할된 그래프 범례 넣기 (legend) 화면을 분할하여 여러개의 그래프를 그린 경우 범례를 넣는 방법을 예시를 통해 알아봅시다. plot 메소드로 그래프를 생성할 때, label 옵션을 지정해주어야 합니다. label 에 입력된 이름이 범례에 출력됩니다. import matplotlib.pyplot as plt import pandas as pd md=pd.DataFrame( {'X':[1,2,3],'Y1':[2,1,5], 'Y2':[2,4,10] } ) #figure,ax 만들기 fig,ax=plt.subplots(1,2) #그래프 그리기 ax[0].plot(md['X'],md['Y1'],color='r',label="ax01") ax[0].plot(md['X'],md['Y2'],color='b',label="ax02") ax[1].plot.. 2022. 3. 18.
[파이썬 matplotlib] 그래프 범례 넣기 (legend) 범례를 넣을 때는 legend 메소드를 사용합니다. 데이터 이름을 먼저 입력하고, 위치 옵션을 설정해주면 됩니다. 위치옵션은 loc 입니다. 입력 가능 값은 아래와 같습니다. 문자열로 입력합니다. best (최적위치) upper right upper left upper center lower right lower left lower center center left center right center 아래는 예시입니다. #범례넣기 부분을 보시면 됩니다. import matplotlib.pyplot as plt import pandas as pd #데이터 생성 df1=pd.DataFrame({'X':[45,50,64,72,77],'Y':[155,165,177,187,177]}) #그래프생성 plt.plot.. 2022. 3. 17.
[파이썬 matplotlib] 꺾은선 그래프 + 계단 계단 형태의 그래프를 그릴 때는 drawstyle 옵션에 'steps-post'를 입력하시면 됩니다. import matplotlib.pyplot as plt import numpy as np import pandas as pd #데이터 생성 df1=pd.DataFrame({'X':[45,50,64,72,77],'Y':[155,165,177,187,177]}) #그래프생성 plt.plot(df1['X'],df1['Y'],color='blue',linestyle='dashed',marker='o') plt.plot(df1['X'],df1['Y'],color='blue',drawstyle='steps-post',marker='o') #그래프 정보 설정 plt.xlim(40, 80) #x축 범위 plt.yli.. 2022. 3. 16.
반응형