각 점의 크기에 따라 결정되는 점의 zorder를 기준으로 산점도가있는 기준면을 만들려고합니다. 따라서 포인트가 완전히 덮히지 않습니다. (이상적인 최종 결과는 황소처럼 보일 것입니다.)크기에 따라 결정되는 zorder가있는 Basemap scatterplot
이의 나는 다음과 같은 코드가 있다고 가정 해 봅시다 :
Ca_data = array([0.088, 0.094, 0.097, 0.126, 0.112, 0.092, 0.076, 0.105])
SO4_data = array([0.109, 0.001, 0.001, 0.007, 0.214, 0.005, 0.008, 0.559])
longitude = linspace(-101, -100, 8)
latitude = linspace(34.5, 35, 8)
m=Basemap(llcrnrlon=-101,llcrnrlat=34.5,urcrnrlon=-100,urcrnrlat=35,resolution='c', epsg=4326)
m.arcgisimage(server='http://server.arcgisonline.com/ArcGIS', service='ESRI_Imagery_World_2D', xpixels=1500, ypixels=1500, zorder=1)
m.scatter(longitude, latitude, latlon=True, s=6000*Ca_data,c='r',marker="o",label='Ca')
m.scatter(longitude, latitude, latlon=True, s=6000*SO4_data,c='b',marker="o",label='SO4')
plt.show()
을 그대로 어디서나 SO4이 칼슘보다 큰, 난 단지 SO4를 볼 것입니다. 들어가서 각 줄에 zorder를 추가하는 방법을 고려해 보았습니다.하지만 동일한 문제를 추가 할 요소가 몇 개 더 있으므로 잘 작동하지 않을 것이라고 생각합니다. 어떤 아이디어?
내가 basemap을 설치하지 않았으므로 모호한 추측 만합니다. 크기에 따라 데이터를 정렬하려고 시도 했습니까? 자동으로 zorder로 변환 될 것으로 기대하십니까? 나는 산란의 내부에 익숙하지 않다. –
나는 당신이 무엇을 제안하는지 잘 모르겠습니다. 값이 가장 작은 값에서 가장 큰 값으로 정렬되도록 데이터의 각 요소를 정렬하면 각 값이 여전히 같은 위치에 묶여 있으므로 작동하지 않습니다. 아니면 가장 큰 농도의 원소를 먼저 나열했기 때문에, 다른 원소보다 더 작은 원소 뒤에 여전히 나타납니다. 필자는 그것에 대해 생각했지만 예제 데이터 세트 에서처럼 더 크고 더 작은 일부 요소 쌍을 교환합니다. 그 중 하나, 또는 완전히 다른 것을 의미 했습니까? – nightzephyr
나는 후자를 의미했다. 'np.argsort'를 사용하여 각각의 데이터 세트에 하나씩 두 개의 정렬 배열을 정의 할 수 있습니다. 그런 다음 경도 [ind1], 위도 [ind1], 6000 * Ca_data [ind1] 및 경도 [ind2], 위도 [ind2], 6000 * SO4_data [ind2]'에 대해 '분산 형'을 호출합니다. * 이것이 * zorder에 영향을 주면 문제없이 작동합니다. –