PywebIO 모듈은 개발자가 HTML 및 JavaScript 없이 웹 애플리케이션이나 브라우저 기반 GUI 애플리케이션을 빠르게 구축하는 데 도움이 될 수 있습니다. PywebIO는 일반적으로 사용되는 일부 시각화 모듈과 결합하여 큰 시각적 화면을 만들 수도 있습니다. .
먼저 필요한 모듈을 설치해 보겠습니다.
pip install pywebio pip install cutecharts
위에서 언급한 Cutecharts 모듈은 Python에서 손으로 그린 스타일의 시각화 아티팩트입니다. PywebIO 모듈과 결합하여 차트를 그리는 효과를 살펴보겠습니다. :
from cutecharts.charts import Bar from cutecharts.faker import Faker from pywebio import start_server from pywebio.output import put_html def bar_base(): chart = Bar("Bar-基本示例", width="100%") chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel") chart.add_series("series-A", Faker.values()) put_html(chart.render_notebook()) if __name__ == '__main__': start_server(bar_base, debug=True, port=8080)
output
위 코드의 논리는 이해하기 어렵지 않습니다. 먼저 히스토그램 Bar() 객체를 인스턴스화한 다음 X축에 해당하는 레이블과 Y축에 해당하는 값을 입력합니다. 마지막으로 put_html(PywebIO 모듈에서) 메서드를 호출하면 URL이 표시됩니다.
브라우저에 URL을 입력하시면 우리가 그린 차트를 보실 수 있습니다. 물론, Cutecharts 모듈에는 다양한 차트를 연결하여 큰 시각적 화면을 생성하는 Page() 메서드가 있습니다. 코드는 다음과 같습니다.
def bar_base(): chart = Bar("Bar-基本示例", width="100%") chart.set_options(labels=Faker.choose(), x_label="I'm xlabel", y_label="I'm ylabel") chart.add_series("series-A", Faker.values()) return chart def pie_base() -> Pie: chart = Pie("标题", width="100%") ........ return chart def radar_base() -> Radar: chart = Radar("标题", width="100%") ...... return chart def line_base() -> Line: chart = Line("标题", width="100%") ...... return chart def main(): page = Page() page.add(pie_base(), pie_base(), radar_base(), line_base(), bar_base()) put_html(page.render_notebook()) if __name__ == '__main__': start_server(main, debug=True, port=8080)
output
PywebIO 모듈이 충족합니다 Pyecharts 모듈에서 코드의 논리는 기본적으로 Cutecharts의 코드 논리와 동일합니다. 먼저 차트 객체가 인스턴스화되고 데이터를 추가하고 차트 스타일을 설정한 후 최종적으로 put_html() 메서드가 호출됩니다. 브라우저에 최종 결과를 표시합니다.
# `chart` 是你的图表的实例 pywebio.output.put_html(chart.render_notebook())
이 경우 Pyecharts에서 조합 구성 요소를 호출하여 각각 그려진 차트를 표시합니다. 코드는 다음과 같습니다.
def bar_plots(): bar = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar")) ) return bar def line_plots(): line = ( Line() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts( title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"), legend_opts=opts.LegendOpts(pos_top="48%"), ) ) return line def main(): c = ( Grid() .add(bar_plots(), grid_opts=opts.GridOpts(pos_bottom="60%")) .add(line_plots(), grid_opts=opts.GridOpts(pos_top="60%")) ) c.width = "100%" put_html(c.render_notebook()) if __name__ == '__main__': start_server(main, debug=True, port=8080)
output
PywebIO와 Bokeh의 조합 구문은 위와 약간 다릅니다.
from bokeh.io import output_notebook from bokeh.io import show output_notebook(notebook_type='pywebio') fig = figure(...) ... show(fig)
예를 들어 간단한 히스토그램을 그려보면 코드는 다음과 같습니다.
def bar_plots(): output_notebook(notebook_type='pywebio') fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries'] counts = [5, 3, 4, 2, 4, 6] p = figure(x_range=fruits, plot_height=350, title="Fruit Counts", toolbar_location=None, tools="") p.vbar(x=fruits, top=counts, width=0.9) p.xgrid.grid_line_color = None p.y_range.start = 0 show(p) if __name__ == "__main__": start_server(bar_plots, debug=True, port=8080)
output
Pywebio 모듈을 다양한 차트를 그리기 위해 일반적으로 사용되는 시각화 모듈과 결합하는 것 외에도 이를 사용하여 탐색 기반 그래픽 인터페이스를 구축할 수도 있습니다. 먼저 가장 간단한 애플리케이션을 만들어 보겠습니다.
from pywebio.input import * from pywebio.output import * data = input_group( "用户数据", [ input("请问您的名字是: ", name="name", type=TEXT), input("输入您的年龄", name="age", type=NUMBER), radio( "哪个洲的", name="continent", options=[ "非洲", "亚洲", "澳大利亚", "欧洲", "北美洲", "南美洲", ], ), checkbox( "用户隐私条例", name="agreement", options=["同意"] ), ], ) put_text("表格输出:") put_table( [ ["名字", data["name"]], ["年龄", data["age"]], ["位置", data["continent"]], ["条例", data["agreement"]], ] )
output
일부 함수 메소드에 대한 설명은 다음과 같습니다.
위 내용은 빅데이터 화면을 만드는 파이썬 코드 50줄!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!