각 산점도에 해당하는 두 개의 컬러 바를 가질 수 있습니까? 두 번째 산점도가 두 번째 컬러 바를 생성하지만 이전 플롯의 컬러 맵을 사용하는 이유를 이해할 수 없습니다.
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(num=1, clear=True)
ax = fig.add_subplot()
d = pd.DataFrame({'a': range(10), 'b': range(10), 'c': range(10)})
e = pd.DataFrame({'a': range(1,11), 'b': range(10), 'c': range(10)})
d.plot.scatter(x='a', y='b', c='c', cmap='GnBu', ax=ax)
e.plot.scatter(x='a', y='b', c='c', cmap='RdPu', ax=ax)
Pandas 플로팅은 많은 작업을 자동으로 수행하지만 나중에 변경하기가 항상 쉬운 것은 아닙니다. 이 경우 pandas는 동일한 두 번 ax
이 사용 된다는 것을 고려하지 않고 두 번 호출합니다 plt.colorbar
.
결과의 조작이 필요한 경우 matplotlib를 사용하여 플롯을 직접 만드는 것이 더 쉽습니다. 두 번째 컬러 바는 플롯에 가장 가깝게 그려집니다. 따라서 아래 코드에서 순서가 변경됩니다.
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(num=1, clear=True)
ax = fig.add_subplot()
d = pd.DataFrame({'a': range(10), 'b': range(10), 'c': range(10)})
e = pd.DataFrame({'a': range(1,11), 'b': range(10), 'c': range(10)})
d_scatter = ax.scatter(x=d['a'], y=d['b'], c=d['c'], cmap='GnBu')
e_scatter = ax.scatter(x=e['a'], y=e['b'], c=e['c'], cmap='RdPu')
plt.colorbar(e_scatter)
plt.colorbar(d_scatter)
plt.show()
PS : 컬러 바가 두 개 이상인 경우 막대를 자체 서브 플롯에 명시 적으로 넣을 수도 있습니다. 이렇게하면 상호 거리를 더 잘 제어 할 수 있습니다. 특히 3 개 이상의 컬러 바가있을 때, 그렇지 않으면 상황이보기 흉할 것입니다.
import pandas as pd
import matplotlib.pyplot as plt
fig, axes = plt.subplots(ncols=3, gridspec_kw={'width_ratios': [15, 1, 1] })
d = pd.DataFrame({'a': range(10), 'b': range(10), 'c': range(10)})
e = pd.DataFrame({'a': range(1,11), 'b': range(10), 'c': range(10)})
d_scatter = axes[0].scatter(x=d['a'], y=d['b'], c=d['c'], cmap='GnBu')
e_scatter = axes[0].scatter(x=e['a'], y=e['b'], c=e['c'], cmap='RdPu')
plt.colorbar(d_scatter, cax=axes[1])
plt.colorbar(e_scatter, cax=axes[2])
plt.show()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다