-
파이썬 Bokeh 이미지 다운로드 파일명 변경IT/파이썬 - Bokeh 2021. 11. 13. 17:32
https://stackoverflow.com/questions/43358427/bokeh-custom-save-tool
본 글은 해당 스택오버플로우를 참고하여 재작성됨.
from bokeh.models import ActionTool from bokeh.util.compiler import TypeScript from bokeh.core.properties import String class CustomSaveTool(ActionTool): CUSTOM_SAVE_TS = """ import {ActionTool, ActionToolView} from "models/tools/actions/action_tool" import * as p from "core/properties" import {tool_icon_save} from "styles/icons.css" export class CustomSaveToolView extends ActionToolView { model: CustomSaveTool async save(name: string): Promise<void> { const blob = await this.plot_view.to_blob() const link = document.createElement("a") link.href = URL.createObjectURL(blob) link.download = name // + ".png" | "svg" (inferred from MIME type) link.target = "_blank" link.dispatchEvent(new MouseEvent("click")) } doit(): void { this.save(this.model.save_name) } } export namespace CustomSaveTool { export type Attrs = p.AttrsOf<Props> export type Props = ActionTool.Props & { save_name: p.Property<string> } } export interface CustomSaveTool extends CustomSaveTool.Attrs {} export class CustomSaveTool extends ActionTool { properties: CustomSaveTool.Props __view_type__: CustomSaveToolView constructor(attrs?: Partial<CustomSaveTool.Attrs>) { super(attrs) } static init_CustomSaveTool(): void { this.prototype.default_view = CustomSaveToolView this.register_alias("save", () => new CustomSaveTool()) this.define<CustomSaveTool.Props>(({String}) => ({ save_name: [ String ], })) } tool_name = "Custom Save" icon = tool_icon_save } """ """Modified save tool allowing custom file names""" __implementation__ = TypeScript(CUSTOM_SAVE_TS) save_name = String()
from CustomSave import CustomSaveTool from bokeh.plotting import figure # 소스 생략 p = figure(x_range=x_label, tools=TOOLS) p.vbar(x='under_label', top='height', width=0.9, source=source, line_color='white', fill_color='color') p.add_tools(CustomSaveTool(save_name='변경할 이름')) # 소스 생략
CustomSave.py 파일을 만들고, CustomSaveTool을 불러와 add_tools를 사용하여 적용
'IT > 파이썬 - Bokeh' 카테고리의 다른 글
Bokeh 파이썬 반응형 시각화 라이브러리 사용 (pandas, csv) 작업물(막대그래프) (0) 2021.08.22 Bokeh 파이썬 반응형 시각화 라이브러리 사용 (0) 2021.08.12