matplotlib 대화 형 데이터 커서 mpldatacursor 구현
12799 단어 matplotlib대화 형 데이터 커서
mpldatacursor
패 키 지 는 matplotlib
에 대화 형 데이터 커서(팝 업 주석 상자)를 제공 할 수 있 습 니 다.그것 의 전형 적 인 기능 은:
도표 데이터 요 소 를 표시 할 때 텍스트 상자 에 최근 데이터 요소 의 좌표 값 을 표시 합 니 다.
텍스트 상자 에서 데이터 커서 를 표시 하지 않 습 니 다.d
키 를 눌 렀 을 때 디 스 플레이 를 전환 합 니 다.\데이터 커서 를 닫 습 니 다.설치 하 다.
matplotlib 버 전이 3.3 보다 낮 으 면 pip 로 직접 설치 할 수 있 습 니 다.
pip install mpldatacursor
matplotlib 버 전이 3.3 보다 높 으 면 pip 설치 에 성 공 했 지만 실행 사례 에 AttributeError: 'ScalarFormatter' object has no attribute 'pprint_val'
오류 가 발생 할 수 있 습 니 다.원본 코드 를 보면 알 수 있 습 니 다:
try:
# Again, older versions of mpl
return formatter.pprint_val(x)
except AttributeError:
# 3.3.0 or later
return formatter.format_data_short(x)
분석 을 통 해 국내 pip 소스 를 사 용 했 기 때문에 mpldatacursor
패키지 가 아직 복구 되 지 않 았 기 때 문 으로 예상 된다(pip 에 설 치 된 mpldatacursor
패키지 버 전 번 호 는 0.7.1).따라서 https://github.com/joferkington/mpldatacursor 까지 건의 합 니 다.
원본 코드 를 다운로드 하여 원본 코드 를 설치 합 니 다(원본 코드 가 설 치 된
mpldatacursor
패키지 버 전 번 호 는 0.7.dev0).
python setup.py install
기본 응용(공식 인 스 턴 스)분석응용 프로 세 스
mpldatacursor
패키지 의 기본 응용 방식 은 비교적 간단 하 다.mpldatacursor
가방 에서 datacursor
함 수 를 가 져 옵 니 다.datacursor
함수.원본 코드 를 보면 알 수 있 듯 이
mpldatacursor
가방 의 구 조 는 다음 과 같다.
mpldatacursor
convenience.py
datacursor.py
pick_info.py
__init__.py
datacursor
함수 정 의 는 convenience.py
에서 datacursor
함수 의 반환 값 은 DataCursor
류 인 스 턴 스 입 니 다.DataCursor
류 의 정 의 는 datacursor.py
에 있다.pick_info.py
은 팝 업 텍스트 상자 와 관련 된 일련의 함 수 를 정의 하여 DataCursor
가지 호출 을 제공 합 니 다.datacursor 함수 정의
datacursor
함수 정의 에서 알 수 있 듯 이:datacursor
함 수 는 파 라 메 터 를 제공 하지 않 을 수 있 습 니 다.그러면 이미지 안의 모든 데이터 요 소 는 상호작용 데이터 커서 를 사용 합 니 다.datacursor
함 수 는 어떤 데이터 요소 가 상호작용 데이터 커서 를 응용 하 는 지 지정 할 수 있 습 니 다.
def datacursor(artists=None, axes=None, **kwargs):
"""
Create an interactive data cursor for the specified artists or specified
axes. The data cursor displays information about a selected artist in a
"popup" annotation box.
If a specific sequence of artists is given, only the specified artists will
be interactively selectable. Otherwise, all manually-plotted artists in
*axes* will be used (*axes* defaults to all axes in all figures).
Parameters
-----------
artists : a matplotlib artist or sequence of artists, optional
The artists to make selectable and display information for. If this is
not specified, then all manually plotted artists in `axes` will be
used.
axes : a matplotlib axes of sequence of axes, optional
The axes to selected artists from if a sequence of artists is not
specified. If `axes` is not specified, then all available axes in all
figures will be used.
tolerance : number, optional
The radius (in points) that the mouse click must be within to select
the artist. Default: 5 points.
formatter : callable, optional
A function that accepts arbitrary kwargs and returns a string that will
be displayed with annotate. Often, it is convienent to pass in the
format method of a template string, e.g.
``formatter="{label}".format``.
Keyword arguments passed in to the `formatter` function:
`x`, `y` : floats
The x and y data coordinates of the clicked point
`event` : a matplotlib ``PickEvent``
The pick event that was fired (note that the selected
artist can be accessed through ``event.artist``).
`label` : string or None
The legend label of the selected artist.
`ind` : list of ints or None
If the artist has "subitems" (e.g. points in a scatter or
line plot), this will be a list of the item(s) that were
clicked on. If the artist does not have "subitems", this
will be None. Note that this is always a list, even when
a single item is selected.
Some selected artists may supply additional keyword arguments that
are not always present, for example:
`z` : number
The "z" (usually color or array) value, if present. For an
``AxesImage`` (as created by ``imshow``), this will be the
uninterpolated array value at the point clicked. For a
``PathCollection`` (as created by ``scatter``) this will be the
"c" value if an array was passed to "c".
`i`, `j` : ints
The row, column indicies of the selected point for an
``AxesImage`` (as created by ``imshow``)
`s` : number
The size of the selected item in a ``PathCollection`` if a size
array is specified.
`c` : number
The array value displayed as color for a ``PathCollection``
if a "c" array is specified (identical to "z").
`point_label` : list
If `point_labels` is given when the data cursor is initialized
and the artist has "subitems", this will be a list of the items
of `point_labels` that correspond to the selected artists.
Note that this is always a list, even when a single artist is
selected.
`width`, `height`, `top`, `bottom` : numbers
The parameters for ``Rectangle`` artists (e.g. bar plots).
point_labels : sequence or dict, optional
For artists with "subitems" (e.g. Line2D's), the item(s) of
`point_labels` corresponding to the selected "subitems" of the artist
will be passed into the formatter function as the "point_label" kwarg.
If a single sequence is given, it will be used for all artists with
"subitems". Alternatively, a dict of artist:sequence pairs may be given
to match an artist to the correct series of point labels.
display : {"one-per-axes", "single", "multiple"}, optional
Controls whether more than one annotation box will be shown.
Default: "one-per-axes"
draggable : boolean, optional
Controls whether or not the annotation box will be interactively
draggable to a new location after being displayed. Defaults to False.
hover : boolean, optional
If True, the datacursor will "pop up" when the mouse hovers over an
artist. Defaults to False. Enabling hover also sets
`display="single"` and `draggable=False`.
props_override : function, optional
If specified, this function customizes the parameters passed into the
formatter function and the x, y location that the datacursor "pop up"
"points" to. This is often useful to make the annotation "point" to a
specific side or corner of an artist, regardless of the position
clicked. The function is passed the same kwargs as the `formatter`
function and is expected to return a dict with at least the keys "x"
and "y" (and probably several others).
Expected call signature: `props_dict = props_override(**kwargs)`
keybindings : boolean or dict, optional
By default, the keys "d" and "t" will be bound to deleting/hiding all
annotation boxes and toggling interactivity for datacursors,
respectively. If keybindings is False, the ability to hide/toggle
datacursors interactively will be disabled. Alternatively, a dict of
the form {'hide':'somekey', 'toggle':'somekey'} may specified to
customize the keyboard shortcuts.
date_format : string, optional
The strftime-style formatting string for dates. Used only if the x or y
axes have been set to display dates. Defaults to "%x %X".
display_button: int, optional
The mouse button that will triggers displaying an annotation box.
Defaults to 1, for left-clicking. (Common options are 1:left-click,
2:middle-click, 3:right-click)
hide_button: int or None, optional
The mouse button that triggers hiding the selected annotation box.
Defaults to 3, for right-clicking. (Common options are 1:left-click,
2:middle-click, 3:right-click, None:hiding disabled)
keep_inside : boolean, optional
Whether or not to adjust the x,y offset to keep the text box inside the
figure. This option has no effect on draggable datacursors. Defaults to
True. Note: Currently disabled on OSX and NbAgg/notebook backends.
**kwargs : additional keyword arguments, optional
Additional keyword arguments are passed on to annotate.
Returns
-------
dc : A ``mpldatacursor.DataCursor`` instance
"""
공식 인 스 턴 스 소스 코드
import matplotlib.pyplot as plt
import numpy as np
from mpldatacursor import datacursor
data = np.outer(range(10), range(1, 5))
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.set_title('Click somewhere on a line')
datacursor()
plt.show()
특정한 데이터 요소 만 대화 식 커서 를 사용 하도록 제한 합 니 다.이 실례 에서 두 개의 데이터 요소(
artist
)가 있다.line1
과 line2
,datacursor(line1)
함수 가 파라미터 line1
을 제 공 했 기 때문에 line1
만 상호작용 데이터 커서 를 사용 할 수 있 고 line2
은 효과 가 없다.
import matplotlib.pyplot as plt
import numpy as np
from mpldatacursor import datacursor
fig, ax = plt.subplots()
line1 = ax.plot([1,3])
line2 = ax.plot([1,2])
ax.set_title('Click somewhere on a line')
datacursor(line1)
plt.show()
기타 공식 실례 기능 개술
mpldatacursor
은 대량의 실제 사례 를 제 공 했 는데 상세 한 것 은 https://github.com/joferkington/mpldatacursor/tree/master/examples 을 보십시오.일일이 분석 하지 않 고 기능 만 간단하게 설명 한다.basic_single_annotation.py
:다 중 서브 맵 의 경우 모든 서브 맵 의 데이터 커서 는 독립 적 입 니 다.즉,모든 서브 맵 은 데이터 커서 를 표시 할 수 있 고 서로 영향 을 주지 않 습 니 다.datacursor(display='single')
인 자 를 사용 한 후 현재 하위 그림 에 만 데이터 커서 를 표시 하고 나머지 하위 그림 에 표 시 된 데이터 커서 는 자동 으로 닫 힙 니 다.change_popup_color.py
:두 가지 사례 를 제공 합 니 다.하 나 는 제시 상자 의 테 두 리 를 취소 하고 하 나 는 제시 상자 의 배경 색 을 흰색 으로 바 꿉 니 다.hover_example.py
:데이터 커서 의 트리거 방식 을 마우스 왼쪽 단 추 를 누 르 면 마우스 부상 으로 변경 합 니 다.show_artist_labels.py
:데이터 커서 의 기본 좌표 값 을 데이터 요소 의 label
으로 변경 합 니 다.highlighting_example.py
:데이터 요 소 를 클릭 하면 데이터 요소 가 밝 아 집 니 다(노란색).draggable_example.py
:하나의 서브 맵 에서 여러 개의 데이터 커서 를 동시에 표시 합 니 다.customize_keyboard_shortcuts.py
:데이터 커서 단축 키 를 다시 연결 합 니 다.labeled_points_example.py
:사용자 정의 데이터 점 라벨.date_example.py
:날짜 데이터 에 따 르 면.bar_example.py
:막대 그래프 에서 모든 기둥 위 에 마우스 로 떠 서 데이터 커서 를 터치 합 니 다.mpldatacursor
은 역사가 유구 하지만 matplotlib3.3
을 지원 하 는 안정 판 을 발표 하지 않 았 고 소스 코드 에 개발 판 을 설치 하거나 mplcursors
가방 https://github.com/anntzer/mplcursors 을 사용 하 는 것 을 권장 합 니 다.mpldatacursor
의 기능 이 매우 풍부 하여 matplotlib
의 상호작용 을 깊이 있 게 학습 하 는 사례 로 삼 을 수 있다.matplotlib 인 터 랙 티 브 데이터 커서 mpldatacursor 의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 matplotlib 인 터 랙 티 브 데이터 커서 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
「수리계획법~선형계획법~」을 참고로 matplotlib와 WolframAlpha로 해보고 싶다.(오리지널 포스트) (참고) 선형 계획법 초입문 작업 중입니다. 정수에만 대응합니다. 공부중. 쉽게 3D 표시할 수 있습니까? 조언을 받으면 도움이됩니다. 완성형?을 찾고 있습니다. 잘 부탁드립니다. 정수해: {{x...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.