zoukankan      html  css  js  c++  java
  • Matplotlib画条形图和柱形图并添加数据标注

    这里放上我比较喜欢的一种条形图设置,使用的是之前爬取的重庆地区链家二手房数据,数据如下:

    链接:https://pan.baidu.com/s/17CMwUAdseO8tJWHEQiA8_A
    提取码:dl2g

    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    df = pd.read_csv('lianjia_utf.csv')
    df.head()

    sns.set(style='white', font_scale=1.2)
    # 保证可以显示中文字体
    plt.rcParams['font.sans-serif']='simhei'
    # 设置字体大小
    font1 = {'family' : 'simhei',
    'weight' : 'normal',
    'size'   : 18,}
    # 使用数据透视表
    region_pivot = pd.pivot_table(df, values='Price', index='Region', aggfunc='count').reset_index().sort_values(ascending=True,by='Price')
    f, ax = plt.subplots(figsize=(8,6))
    # 画条形图
    barh = plt.barh(region_pivot['Region'].values,region_pivot['Price'].values, color='dodgerblue')
    barh[-1].set_color('green')
    # 给条形图添加数据标注
    for y, x in enumerate(region_pivot['Price'].values):
        plt.text(x+500, y-0.2, "%s" %x)
    #删除所有边框
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    ax.spines['left'].set_visible(False)
    # ax.set(title='重庆各区域二手房总价', xlabel='地区', ylabel='总价')
    plt.tick_params(labelsize=14)
    plt.xlabel('地区', font1)
    plt.ylabel('总价', font1)
    plt.title('重庆各区域二手房总价', font1)
    f.savefig('1.png', bbox_inches='tight')

    运行结果如下:

    如果把上图改成柱形图,可以这样做:

    sns.set(style='white', font_scale=1.2)
    # 保证可以显示中文字体
    plt.rcParams['font.sans-serif']='simhei'
    # 设置字体大小
    font1 = {'family' : 'simhei',
    'weight' : 'normal',
    'size'   : 18,}
    # 使用数据透视表
    region_pivot = pd.pivot_table(df, values='Price', index='Region', aggfunc='count').reset_index().sort_values(ascending=False,by='Price')
    f, ax = plt.subplots(figsize=(12,6))
    # 画柱形图
    bar = plt.bar(region_pivot['Region'].values,region_pivot['Price'].values, color='dodgerblue')
    bar[0].set_color('green')
    # 给条形图添加数据标注
    for x, y in enumerate(region_pivot['Price'].values):
        plt.text(x-0.4, y+500, "%s" %y)
    #删除所有边框
    ax.spines['right'].set_visible(False)
    ax.spines['top'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    ax.spines['left'].set_visible(False)
    # ax.set(title='重庆各区域二手房总价', xlabel='地区', ylabel='总价')
    plt.tick_params(labelsize=14)
    plt.xlabel('地区', font1)
    plt.ylabel('总价', font1)
    plt.title('重庆各区域二手房总价', font1)
    f.savefig('1_1.png', bbox_inches='tight')

    运行结果如下:

    关于配色,matplotlib中的配色,可参考下图:

  • 相关阅读:
    CSS学习1
    三个和尚没水喝阅读笔记
    Javascript学习1

    mv 批量
    emacs 大小写转换
    too many open files
    成都定房
    有关重定向
    postgresql 数据库
  • 原文地址:https://www.cnblogs.com/yunxiaofei/p/11116941.html
Copyright © 2011-2022 走看看