使用matplotlib绘图(二)之柱状图

# 使用matplotlib绘制柱状图
import numpy as np
import matplotlib.pyplot as plt

# 设置全局字体,以支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决‘-’表现为方块的问题
plt.rcParams['axes.unicode_minus'] = False

data = {
    '南京':(60, '#7199cf'),
    '上海':(45, '#4fc4aa'),
    '北京':(120, '#ffff10'),
}

fig = plt.figure(figsize=(12,8))

# 创建绘图区域
ax1 = fig.add_subplot(111)
ax1.set_title('柱状图')

# 生成x轴的每个元素的位置,列表是[1,2,3]
xticks = np.arange(1,4)

# 自定义柱状图的每个柱的宽度
bar_width = 0.5

cities = data.keys()
values = [x[0] for x in data.values()]
colors = [x[1] for x in data.values()]

# 画柱状图,设置柱的边缘为透明
bars = ax1.bar(xticks, values, width=bar_width, edgecolor='none')

# 设置x,y轴的标签
ax1.set_xlabel('城市')
ax1.set_ylabel('数值')

ax1.set_xticks(xticks)
ax1.set_xticklabels(cities)

# 设置x,y轴的范围
ax1.set_xlim([0.5, 3.5])
ax1.set_ylim([0,125])

# 给每一个bar分配颜色
for bar, color in zip(bars, colors):
    bar.set_color(color)
    
plt.savefig('bar.jpg')
plt.show()

posted @ 2017-08-24 22:18  cnkai  阅读(1933)  评论(0编辑  收藏  举报