2013-07-02 5 views
0

소프트웨어 정의 라디오에서 측정 값을 읽었습니다. 세 가지 양, 주파수, 전력 및 오류율이 있습니다. 후자의 양은 주파수와 관련하여 측정되므로 x 축에 주파수를 유지하고 싶습니다. 이제는 주파수와 전력 및 주파수를 한 번에 볼 수 있도록 단일 커브에 그려야합니다. 나는 꽤 오랫동안 matplotlib을보고 있었지만 3d scatter plot을보고 그들은 내가 원하는 그림을 전달하지 않는 것처럼 보인다. 그래서 내 질문은플롯 팅에 대한 제안 3 1 차원 변수

  1. 내 경우에는 3D 플롯 쓸모 내가 더 플롯이 그래프와 나는 서로의 상단에있는 그래프를 모두 볼 수 있도록 함께 두 그래프의 y 축에 가입.

  2. 파이썬이나 MATLAB과 같은 방법으로 3D 커브를 플롯 한 다음 커서를 움직이면 주파수와 전력을 볼 수 있고 커서를 다른 방향으로 움직이면 빈도와 오류율을 볼 수 있습니다.

내 읽기를 더 잘 표현할 수있는 다른 아이디어가 도움이 될 것입니다.

+1

'서핑'또는 '메쉬'사용을 고려해 보셨습니까? –

+0

나는 둘 다 보았다. 그러나 그래프를 보면 즉시 y 매개 변수를 정확하게 인식하지 못하는 것이 분명하지는 않습니다. 나는 처음으로 서핑과 메쉬를보고 있기 때문에 잘못되었을 수도 있습니다. 매우 도움이 될만한 예를 보여 주실 수 있다면. –

+0

3D 데이터가 있습니까? 따라서 각 주파수 - 전력 쌍에 대해 여러 오류율이 있습니까? 아니면 3 개의 변수가 있습니까? 내가 묻는 이유는 당신의 (1) 질문에 분명히 드러나는 것입니다. – Schorsch

답변

1

두 세트의 데이터는 동일한 종속 변수 (X 축)를 공유 할 때, 적어도 공간을 절약하기 위해 다음과 같은 방식으로 둘 플롯 과학 문헌에서 일반적이다

Example

이것 어떤 사람들에게는 혼란을 야기 할 수있는 x 축을 꼬기보다 선호됩니다. 기능을 비교하려면 특히 잘 작동합니다.

import pylab as py 

x = py.linspace(0,10,1000) 
y = py.sin(x) 
z = py.sinc(x) 

ax1 = py.subplot(211) 
ax1.plot(x,y) 
ax1.set_xticklabels([]) # Remove the xticks from the top figure 
ax1.set_yticks(ax1.get_yticks()[1:]) # Stops the y axis overlapping 

ax2 = py.subplot(212) 
ax2.plot(x,z) 

py.subplots_adjust(hspace=0.0) 

py.show() 

내가 xticklabels을 제거하는 더 좋은 방법이 생각하지만 난 그 순간을 기억할 수 :

이 플롯을 사용하여 생성되었습니다. py.set_xticks([])처럼 그리드를 묻지 않고 상단 플롯에 ticks이없는 것처럼주의하십시오.

+0

도움이되었습니다. 그래프에 어떻게 라벨을 붙여야합니까? ax1.xlabel ('frequency')이 작동하지 않습니다. –

+0

나는 그것을 얻었다. set_xlabel 메서드를 사용했습니다. 감사. 내가 가진 한 가지 작은 의심은 그것이 플롯 된 후에 나의 yaxis 비늘을 바꿀 수 있다는 것입니다.나는 그것이 필요한 즉각적인 변화를 보여주지 않는 yplot 모습을 가지고 있습니다. 그래서 내가 플롯되어 그래프를보고 싶은 방법에 따라 y 축 규모를 변경할 수 있습니다. –

+0

일반적으로 아니오, 이는 제한 사항처럼 보일 수 있지만 그렇지 않습니다. 변경을 할 때마다 다시 작성해야합니다. 이는 수동으로 제한을 설정하지 않고 숫자를 재현 할 수 있음을 의미합니다. 다른 데이터와 함께 동일한 플로팅 스크립트를 사용하려면 파일 이름을 허용하는 함수로 바꾸고 ylimit의 설정을 자동화하십시오. 사용자 입력이 적을수록 좋습니다. 이러한 것들을 돕기 위해 IPython – Greg