哪些Python案例适合数据可视化?

wen python案例 11

本文目录导读:

哪些Python案例适合数据可视化?

  1. 入门级:快速上手(Matplotlib + Seaborn)
  2. 进阶级:交互与动态(Plotly + Bokeh)
  3. 高级与专业级(Geopandas + 3D)
  4. 💡 案例选择建议

Python数据可视化的经典案例非常丰富,从基础统计到地理信息、实时数据流都有涉及,以下按难度和场景分类,推荐10个极具代表性的案例,并附上核心库和代码思路:

入门级:快速上手(Matplotlib + Seaborn)

股票K线图与均线

  • 数据:Yahoo Finance 历史数据(yfinance 库)

  • 场景:金融数据分析

  • 核心代码

    import yfinance as yf
    import matplotlib.pyplot as plt
    data = yf.download('AAPL', start='2023-01-01')
    data['Close'].plot(figsize=(12,6))  # 收盘价折线
    data['20 MA'] = data['Close'].rolling(20).mean()  # 20日均线
    plt.show()

鸢尾花散点矩阵

  • 数据sklearn.datasets.load_iris()

  • 场景:探索性分析

  • 核心代码

    import seaborn as sns
    import pandas as pd
    df = pd.read_csv('iris.csv')
    sns.pairplot(df, hue='species', diag_kind='kde', markers=['o', 's', 'D'])
    plt.show()

美国GDP占比的饼图(带阴影)

  • 数据:世界银行API

  • 场景:比例构成

  • 核心代码

    import matplotlib.pyplot as plt
    sectors = ['服务业', '工业', '农业']
    sizes = [77, 20, 3]
    plt.pie(sizes, labels=sectors, autopct='%1.1f%%', shadow=True, startangle=90)

进阶级:交互与动态(Plotly + Bokeh)

实时房价热力图

  • 数据:Kaggle 爱荷华州房价数据集

  • 场景:相关性矩阵

  • 核心代码

    import plotly.express as px
    import pandas as pd
    df = pd.read_csv('house.csv')
    corr = df.corr()
    fig = px.imshow(corr, text_auto=True, color_continuous_scale='RdBu_r')
    fig.show()

纽约出租车GPS轨迹动画

  • 数据:NYC Taxi 公开数据集(2003部分)

  • 场景:时空轨迹可视化

  • 核心代码

    import plotly.graph_objects as go
    import pandas as pd
    df = pd.read_parquet('taxi.parquet')  # 需预处理好
    fig = go.Figure(
        data=go.Scattermapbox(
            lat=df['pickup_latitude'],
            lon=df['pickup_longitude'],
            mode='markers',
            marker={'size': 4, 'color': df['trip_distance'], 'colorscale': 'Viridis'}
        ),
        layout=go.Layout(mapbox_style='open-street-map')
    )
    fig.show()

全球疫情动态仪表盘(交互式)

  • 数据:Johns Hopkins 数据集(在线CSV)

  • 场景:仪表板制作

  • 核心代码(基于 dash):

    import dash
    import dash_core_components as dcc
    import dash_html_components as html
    import plotly.express as px
    df = px.data.gapminder()  # 示例数据
    app = dash.Dash()
    app.layout = html.Div([
        dcc.Graph(figure=px.choropleth(df, locations='iso_alpha', color='lifeExp'))
    ])
    if __name__ == '__main__':
        app.run_server(debug=True)

高级与专业级(Geopandas + 3D)

中国人口密度3D地形图

  • 数据:全国县级人口数据 + 高程DEM

  • 场景:地理信息叠加

  • 核心代码(需 geopandasmatplotlib 3D):

    import geopandas as gpd
    from mpl_toolkits.mplot3d import Axes3D
    data = gpd.read_file('county_pop.shp')
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    ax.bar3d(data['longitude'], data['latitude'], 0, 0.5, 0.5, data['population'])

网络爬虫+词云(微博热搜)

  • 数据:实时爬取微博热搜API

  • 场景:舆情分析

  • 核心代码(需 wordcloudjieba):

    from wordcloud import WordCloud
    import jieba
    text = " ".join(jieba.cut("Python 数据可视化 案例 实践"))
    wc = WordCloud(font_path='simhei.ttf', background_color='white').generate(text)
    plt.imshow(wc)

机器学习决策边界可视化

  • 数据:鸢尾花前两维特征

  • 场景:模型解释

  • 核心代码(使用 mlxtend.plotting):

    from sklearn.svm import SVC
    from mlxtend.plotting import plot_decision_regions
    clf = SVC().fit(X_train, y_train)
    plot_decision_regions(X_train, y_train, clf=clf, legend=2)

金融风险VaR蒙特卡洛模拟

  • 数据:模拟10000条收益率路径

  • 场景:定量金融

  • 核心代码

    import numpy as np
    import matplotlib.pyplot as plt
    np.random.seed(42)
    paths = np.random.normal(0.001, 0.02, (1000, 252)).cumsum(axis=1)
    plt.plot(paths.T, alpha=0.1, color='b')
    plt.axhline(np.percentile(paths[:, -1], 5), color='r', lw=3)

💡 案例选择建议

目标场景 优先案例 推荐库
快速出图(日报/PPT) 案例2、3 Matplotlib + Seaborn
Web交互仪表板 案例6、5 Plotly Dash / Bokeh
地理空间分析 案例7、8 Geopandas + Folium
时间序列金融 案例1、10 mplfinance / Plotly
机器学习解释 案例9 mlxtend / yellowbrick

学习路径

  1. 先跑通案例1-3,掌握 Pandas + Matplotlib/Seaborn 基础语法。
  2. Plotly 改造案例2或4,体验交互式过滤。
  3. 尝试 Dash 搭建最简单的仪表板(案例6简化版)。
  4. 根据实际数据(如疫情、销售、天气)组合上述代码。

这些案例涵盖了90%的常见可视化需求,建议从鸢尾花的散点矩阵股票K线图开始,因为它们直观且数据易得。

抱歉,评论功能暂时关闭!