문제

다양한 형태로 일부 데이터를 플로팅해야합니다. 현재 사용 중입니다 matplotlib 그리고 나는 내가 생산할 수있는 음모에 상당히 만족합니다.

이 질문은 마지막 질문을 음모하는 방법에 관한 것입니다. 데이터는 "거리 테이블"과 유사합니다. 이것 (더 크게, 내 테이블은 128x128이고 여전히 요소 당 3 개 이상의 숫자가 있습니다).

이제 내 데이터는 거리 테이블보다 훨씬 "구조화 된"(내 데이터는 알파벳순으로 정렬 된 거리 테이블에서 "무작위로"변하지 않으므로 3D입니다. 막대 차트, 또는 아마도 그들 중 3 명은 완벽 할 것입니다. 내 이해는 그러한 차트가 matplotlib에서 누락되었다는 것입니다.

(색상) COUNTOR3D와 같은 것을 사용할 수 있습니다 이것들 또는 Imshow와 같은 2D의 무언가는 실제로 데이터가 무엇인지를 대표하지는 않습니다 (데이터는 내 128 점에서 의미가 있으며 두 점 사이에는 아무것도 없습니다). 그리고 막대의 높이는 색상보다 읽기 쉬운 IMO입니다.

따라서 질문 :

  1. Matplotlib에서 3D Barchart를 만들 수 있습니까? 미학 목적을위한 "가짜"3D 렌더링이있는 2D Barchart뿐만 아니라 2D 도메인을 의미한다는 것은 분명해야합니다.
  2. 이전 질문에 대한 답이 아니오라면 다른 도서관이 그렇게 할 수 있습니까? 나는 파이썬 기반을 선호하지만 다른 Linux 친화적 인 가능성은 괜찮습니다.
  3. 이전 질문에 대한 답이 아니오 인 경우 해당 데이터를 보여주는 방법에 대한 제안이 있습니까? 예를 들어, imshow 또는 기타 색깔의 방식으로 겹치는 값이있는 테이블을 만듭니다.
도움이 되었습니까?

해결책

Myavavi2 만들 수 있습니다 3D Barcharts (조금 아래로 스크롤). 일단 당신이 가지고있다 Mayavi/VTK/ETS/등. 설치된 모든 것이 아름답게 작동하지만 모든 작업을 모두 설치하는 작업 일 수 있습니다. Ubuntu는 모든 패키지를 가지고 있지만 내가 아는 유일한 Linux 배포판입니다.

다른 팁

얼마 동안 Matplotlib는 3D 지원이 없었지만 다시 추가되었습니다. 최근에. 그 이후로 릴리스되지 않았으므로 SVN 버전을 사용해야하며 문서는 약간 희소합니다 (예/mplot3d/demo.py 참조). MPLOT3D가 실제 3D 막대 차트를 지원하는지 모르겠지만 데모 중 하나는 그런 식으로 확장 될 수있는 것처럼 보입니다.

편집 : 데모의 소스 코드가 그러나 어떤 이유로 든 결과는 그렇지 않습니다. 내 말은 test_polys 기능, 다음은 다음과 같습니다.

예제 그림 http://www.iki.fi/jks/tmp/poly3d.png

그만큼 test_bar2D 기능이 더 좋을지 모르지만 현재 SVN 버전에 오류가 발생하므로 데모에서 댓글이 표시됩니다. 사소한 문제 또는 고치기가 더 어려운 문제 일 수 있습니다.

한 가지 더 가능성은 gnuplot이며, 어떤 종류의 의사 3D 막대 차트, 그리고 gnuplot.py 파이썬에서 gnuplot에 인터페이스 할 수 있습니다. 그래도 나는 그것을 직접 시도하지 않았습니다.

이것은 matplotlib를 사용하는 간단한 bar-3D에 대한 내 코드입니다.

import mpl_toolkits
from mpl_toolkits.mplot3d import Axes3D   
import matplotlib.pyplot as plt
%matplotlib inline

## The value you want to plot 
zval=[0.020752244,0.078514652,0.170302899,0.29543857,0.45358061,0.021255922,0.079022499,\
  0.171294169,0.29749654,0.457114286,0.020009631,0.073154019,0.158043498,0.273889264,0.419618287]    

fig = plt.figure(figsize=(12,9))
ax = fig.add_subplot(111,projection='3d')
col=["#ccebc5","#b3cde3","#fbb4ae"]*5
xpos=[1,2,3]*5
ypos=range(1,6,1)*5
zpos=[0]*15
dx=[0.4]*15
dy=[0.5]*15
dz=zval

for i in range(0,15,1):
     ax.bar3d(ypos[i], xpos[i], zpos[i], dx[i], dy[i], dz[i],     
color=col[i],alpha=0.75)

ax.view_init(azim=120)
plt.show()      

http://i8.tietuku.com/ea79b5837914ab2.png

차트 디렉터를 확인할 수 있습니다.

http://www.advsofteng.com

그것은 매우 다양한 차트와 그래프를 가지고 있으며 멋진 파이썬 (및 기타 언어) API가 있습니다.

두 가지 에디션이 있습니다. 무료 버전은 생성 된 이미지에 blurb를 넣고 급여 버전의 가격은 매우 합리적입니다.

다음은 가장 흥미로운 3D 스택 막대 차트 중 하나입니다.

sample graph
(원천: advsofteng.com)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top