yunxiaofei

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

链接: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中的配色,可参考下图:

 

分类:

技术点:

相关文章: