# 使用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()