编程学习网 > 编程语言 > Python > Python教程:搭建简易的可视化Web应用!
2024
05-25

Python教程:搭建简易的可视化Web应用!


在当今数据驱动的时代,能够快速地将数据可视化并通过数据分析平台(即WEB应用)共享给其他人,是一项极其重要的技能。

Python以其强大的数据处理能力和丰富的库,成为了数据分析和WEB开发的优选语言。下面,我将教会大家如何使用Python搭建一个简单的可视化WEB应用。

一、生成数据集
首先,我们需要一个包含人口数量、GDP、人均GDP的数据集。这里我们手动创建一个简单的数据集,包含中国、美国、印度、俄罗斯、巴西、德国的信息。

import pandas as pd

data = {
    'Country': ['China', 'USA', 'India', 'Russia', 'Brazil', 'Germany'],
    'GDP': [19.91, 27.39, 3.76, 1.57, 1.66, 4.05], # 单位:万亿美元(估算值)
    'GDP_per_capita': [13930, 82600, 2730, 10800, 7600, 49200], # 单位:美元(估算值)
    'Population': [1409340, 332446, 1363430, 143500, 213993, 83017] # 单位:千人(估算值)
}
df = pd.DataFrame(data)

注意,此处的数据仅为展示,如要获取精确的数据可以利用pandas_datareader这个库进行下载,或者通过世界银行的官网进行下载。

二、搭建可视化WEB应用
为了快速搭建WEB应用,我们将使用Panel库轻松地创建交互式WEB应用。如果还未安装Panel,可以在Anaconda Terminal中输入下列命令进行安装:

pip install panel hvplot

接下来,我们将使用Panel和hvPlot库来创建一个可交互的数据筛选界面。

# 创建WEB应用
import panel as pn
import holoviews as hv
from holoviews import opts
hv.extension('bokeh')

# 创建一个筛选器来选择国家,并初始化一个列表来跟踪已选择的国家
selected_countries = []
country_selector = pn.widgets.Select(name='Country', options=df['Country'].tolist())


def update_plots(country, max_countries=5):
    global selected_countries
    if country not in selected_countries:
        selected_countries.append(country)
        if len(selected_countries) > max_countries:
            selected_countries.pop(0) # 移除最早添加的国家以保持列表长度为max_countries

    selected_data = df[df['Country'].isin(selected_countries)]

    # 创建条形图
    gdp_plot = hv.Bars(selected_data, kdims=['Country'], vdims=['GDP']).opts(
        opts.Bars(title='GDP(万亿美元)', stacked=False, xrotation=90))
    gdp_per_capita_plot = hv.Bars(selected_data, kdims=['Country'], vdims=['GDP_per_capita']).opts(
        opts.Bars(title='GDP Per Capita(美元)', stacked=False, xrotation=90))
    population_plot = hv.Bars(selected_data, kdims=['Country'], vdims=['Population']).opts(
        opts.Bars(title='Population(千人)', stacked=False, xrotation=90))

    return pn.Row(gdp_plot, gdp_per_capita_plot, population_plot)


# 绑定选择器与绘图函数,并设置watch参数为True以监听选择器的变化
dynamic_plots = pn.bind(update_plots, country=country_selector, watch=True)

# 创建一个Panel应用并显示
app = pn.Column(country_selector, dynamic_plots)
app.servable()
pn.serve(app)

在上面的代码中:

我们使用pn.bind来创建响应式函数。这样,每当选择器的值变化时,update_plots函数都会被调用。


selected_countries列表用于跟踪用户选择的国家。当用户选择一个新的国家时,它会被添加到列表中。如果列表长度超过5,最早添加的国家将被移除。


update_plots函数根据selected_countries列表中的数据来绘制条形图。

三、运行WEB应用
运行上述代码后,你将会看到你的默认浏览器打开了一个可交互的数据筛选界面,这就是我们创造的WEB应用。

我们可以通过下拉框选择感兴趣的国家,并查看相应的数据和图表吗,来看看最终的效果吧:


通过以上步骤,我们成功地使用Python搭建了一个简单的可视化WEB应用。这个应用允许用户通过交互来筛选数据,并实时查看相应的图表。Python的丰富库资源和简洁语法使得这一过程变得非常快速和高效。

以上就是Python教程:搭建简易的可视化Web应用!的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取