일련의 2D 분산 형 플롯 (대 x[2]
등)에서 높은 딤 지점 세트 x
(여기 dim (6 x 42))을 시각화하려고합니다. .) bokeh를 사용합니다. [edit2] 참고로 scikit-opt의 this 좋은 예를 참조하십시오. 두 플롯에서 x[1]
이 발생하면 동일한 범위와 상호 작용해야하며 플롯은 동시에 재조정해야합니다. 나는이 일을 성취했지만 올바르게 확장되지는 않습니다. 여기서 최소한 예이다 :는 ipython 노트북으로 .. 여러 플롯간에 x_range와 y_range를 섞으면 보케스 축 한계가 실패합니다.
import bokeh
import bokeh.io
import numpy as np
import bokeh.plotting
bokeh.io.output_notebook()
# That's my fictional dataset
x = np.random.randn(6, 42)
x[2] *= 10
# Build the pairwise scatter plots
kw = dict(plot_width=165, plot_height=165)
# `ranges` stores the range in each dimension,
# used as both, x- and y-range depending on
# where the variable is.
figs, ranges = {}, {}
for r, row in enumerate(x):
for c, col in enumerate(x):
if r is not c:
fig = bokeh.plotting.figure(
x_range=ranges.get(c, None), y_range=ranges.get(r, None),
**kw)
fig.scatter(x=col, y=row)
fig.xaxis.axis_label = f'Dim {c}'
fig.yaxis.axis_label = f'Dim {r}'
if c not in ranges:
ranges[c] = fig.x_range
if r not in ranges:
ranges[r] = fig.y_range
figs[f'{r}_{c}'] = fig
else:
break
# Setup the plotting layout
plots = [[]]
for r, row in enumerate(x):
for c, col in enumerate(x):
if r is not c:
plots[-1].append(figs[f'{r}_{c}'])
else:
plots.append([])
break
staircase = bokeh.layouts.gridplot(plots, **kw)
bokeh.plotting.show(staircase)
[EDIT2]
(> = py3.6), 나뭇잎이 희미 1의 배율을 설정하고, 정확하게 2. 그런 다음 dim 2와 같이 다음 차원의 눈금을 설정하기 시작합니다.이 점을 확인하기 위해 dim 2를 10 배로 조정했습니다.대화 형으로 대화 상자를 다시 최적의 설정으로 다시 조정할 수 있습니다. 그러나 기본적으로 그렇게하고 싶습니다. 어떤 옵션을 bokeh 안에 가지고 있습니까? rescale? 나는 fig.xaxis.bounds
으로 약간 연주했지만 성공하지 못했습니다. 당신의 도움을 주셔서 감사합니다!
에필로그 :
for i, X in enumerate(x):
ranges[i].start = X.min()
ranges[i].end = X.max()
가 시작 범위를 해결하기 위해 : @의 bigreddot의 대답에 따라 , 나는 라인을 추가했다. 나는 아직도 행동이 버그라고 생각한다.
범위는 각 차원이 고유 한 범위를 갖도록 연결됩니다. x [1] 영역을 변경하면 x [1]이 표시된 모든 곳이 바뀝니다. 나는 더 명확하게하기 위해 나의 질문을 편집했다. – Jus
x 범위를 y 범위에 연결한다는 것은 여전히 이상한 것처럼 보입니다. (이는 단지 'int'를 사용하지 않고'ranges' dict에서'r'과'c'를 구별하지 않기 때문에 발생합니다.) 아마도 여러분은 스크린 샷을 찍고 원하는 것을 주석을 달아주세요. 어쨌든 위에 나열된 옵션은 범위를보다 직접적으로 제어하는 데 사용할 수있는 옵션입니다. – bigreddot
scikit-opt의 [this] (https://scikit-optimize.github.io/notebooks/visualizing-results_files/visualizing-results_15_1.png)를 참조하십시오. 꽤 유용하다고 생각합니다. 7D 기능을 어떻게 시각화합니까? – Jus