• python 使用 colormap 对条形图着色,添加数据标签


    0、import

    import numpy as np
    import pandas as pd
    import matplotlib as mplfrom matplotlib import pyplot as plt

    1、读取数据

    df = pd.read_csv('dataset/CHN_GDP(00-19).csv',
                     skiprows=3,
                     skipfooter=4,
                     encoding='utf-8',
                     engine='python'
                    )
    
    gdp = df[['地区', '2019年']].sort_values(by='2019年')
    districts, gdp_2019 = zip(*gdp.values)

    说明:此数据是我国 00年——19年各省 GDP 数据,下载说明可参看

    https://www.cnblogs.com/shanger/p/13153014.html

    2、绘制图形:

    # 使图表正常显示中文
    mpl.rcParams['font.sans-serif'] = 'SimHei'
    # 使坐标轴刻度标签正常显示负号
    mpl.rcParams['axes.unicode_minus'] = False
    
    fig = plt.figure(figsize=(18, 88),
                     facecolor='cornsilk'
                    )
    
    cm_names = ['BuPu', 'cool', 'hot', 'jet', 'PiYG',
               'plasma', 'PuRd', 'rainbow', 'RdYlGn_r', 'spring']
    axes = fig.subplots(nrows=(len(cm_names)+1)//2,
                        ncols=2,
                        sharey=True
                       )
                       
    for ax, cm_name in zip(axes.ravel(), cm_names):
        cm = mpl.cm.get_cmap(cm_name)
        colors = cm(np.linspace(0, 1, 30))
        ax.barh(y=districts,
                width=gdp_2019,
                height=0.8,
                color=colors,
                edgecolor='green'
               )
    
        # 添加无指向型的注释文本
        for i, (district, gdp) in enumerate(zip(districts, gdp_2019)):
            x = gdp-8000 if gdp > 100000 else gdp - 100    # 三元表达式
            d = district[:3] if set(district).intersection('龙内') else district[:2]    # 三元表达式
    nums
    = str(int(gdp_2019[i])) text = ''.join([d, ' ', nums[:-3], ',', nums[-3:]]) ax.text(x, # 注释内容所在的横轴坐标 y=i, # 注释内容所在的纵轴坐标 s=text, # 注释的文本内容 size=15, # 字体大小 weight='bold', # 注释文本内容的字体粗细风格 color='navy' # 文本颜色
            
    ) ax.set_ylim(-0.7, 30), ax.set_title(label=cm_name, fontdict={'fontsize': 15,}     ) ax.xaxis.grid(color='grey', ls=':' )

      # 隐藏上边和右边的轴脊 ax.spines[
    'top'].set_visible(False) ax.spines['right'].set_color('None') # 显示图形
    plt.show();

    图形:

     

  • 相关阅读:
    cookie的过期时间
    Cookie的使用及位置
    用存储过程进行的查询拼接
    验证码的使用
    SQLHelper
    App_code的引用
    GridView使用
    javascript、ajax验证
    数据库小结(三)
    数据库操作(七)存储过程
  • 原文地址:https://www.cnblogs.com/shanger/p/13154927.html
Copyright © 2020-2023  润新知