세 번째 변수의 함수로 산점 마커를 색칠하는 방법
세 번째 변수에 따라 점이 음영 처리되는 산점도를 만들고자 합니다(매트플롯립 사용).저는 이것에 매우 가까워졌습니다.
plt.scatter(w, M, c=p, marker='s')
여기서 w와 M은 데이터 점이고 p는 음영 처리할 변수입니다.
하지만 저는 컬러보다는 그레이 스케일로 하고 싶습니다.누가 도와줄 수 있습니까?
색상을 수동으로 설정할 필요가 없습니다.대신 그레이스케일 색상표 지정...
import numpy as np
import matplotlib.pyplot as plt
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
# Plot...
plt.scatter(x, y, c=y, s=500) # s is a size of marker
plt.gray()
plt.show()
또는 더 넓은 범위의 컬러 맵을 원하는 경우 다음을 지정할 수도 있습니다.cmap
로의 싸움.scatter
이들 중 하나의 역버전을 사용하려면 다음과 같이 지정합니다._r
그들 중 어떤 버전이든.예.gray_r
대신에gray
사전에 만들어진 여러 개의 그레이스케일 색상 지도(예:gray
,gist_yarg
,binary
등).
import matplotlib.pyplot as plt
import numpy as np
# Generate data...
x = np.random.random(10)
y = np.random.random(10)
plt.scatter(x, y, c=y, s=500, cmap='gray')
plt.show()
inmatplotlib 회색은 0-1 사이의 숫자 값 문자열로 지정할 수 있습니다.
예를들면c = '0.1'
그런 다음 이 범위 내의 값으로 세 번째 변수를 변환하여 점에 색상을 지정하는 데 사용할 수 있습니다.
다음 예제에서는 점의 y 위치를 색상을 결정하는 값으로 사용했습니다.
from matplotlib import pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [125, 32, 54, 253, 67, 87, 233, 56, 67]
color = [str(item/255.) for item in y]
plt.scatter(x, y, s=500, c=color)
plt.show()
경우에 따라 x-값 대소문자를 기준으로 정확하게 색상을 표시해야 할 수도 있습니다.예를 들어, 3가지 유형의 변수와 일부 데이터 점이 있는 데이터 프레임이 있을 수 있습니다.그리고 당신은 다음과 같이 하기를 원합니다.
- 물리적 변수 'A'에 해당하는 점을 빨간색으로 표시합니다.
- 파란색으로 물리적 변수 'B'에 해당하는 점을 표시합니다.
- 물리적 변수 'C'에 해당하는 점을 녹색으로 표시합니다.
이 경우 x 값을 해당 색상 이름에 목록으로 매핑하고 해당 목록을 다음으로 전달하기 위해 짧은 함수에 써야 할 수 있습니다.plt.scatter
지휘권
x=['A','B','B','C','A','B']
y=[15,30,25,18,22,13]
# Function to map the colors as a list from the input list of x variables
def pltcolor(lst):
cols=[]
for l in lst:
if l=='A':
cols.append('red')
elif l=='B':
cols.append('blue')
else:
cols.append('green')
return cols
# Create the colors list using the function above
cols=pltcolor(x)
plt.scatter(x=x,y=y,s=500,c=cols) #Pass on the list created by the function here
plt.grid(True)
plt.show()
간단한 해결책은 다음과 같습니다.
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(8,8))
p = ax.scatter(x, y, c=y, cmap='cmo.deep')
fig.colorbar(p,ax=ax,orientation='vertical',label='labelname')
언급URL : https://stackoverflow.com/questions/8202605/how-to-color-scatter-markers-as-a-function-of-a-third-variable
'programing' 카테고리의 다른 글
명령줄을 사용하여 postgres 백업 파일을 복원하시겠습니까? (0) | 2023.06.04 |
---|---|
안드로이드에서 중력과 레이아웃 중력의 차이점은 무엇입니까? (0) | 2023.06.04 |
Numpy 이미지 크기 조정/크기 조정 (0) | 2023.06.04 |
딕트할 파이썬 튜플 (0) | 2023.06.04 |
ggplot2 기본 색상표 에뮬레이트 (0) | 2023.06.04 |