Matplotlib学习笔记002 绘制条形图
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
一、一般条形图
一般条形图使用 pyplot.bar()
函数绘制,其形式及参数如下:
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
主要参数解释:
# x:一个数组或者列表,代表需要绘制的条形图的x轴的坐标点。
# height:一个数组或者列表,代表需要绘制的条形图y轴的坐标点。
# width:每一个条形图的宽度,默认是0.8的宽度。
# bottom:y轴的基线,默认是0,也就是距离底部为0.
# align:对齐方式,{'center','edge'},默认是center,居中对齐;edge为靠边对齐,具体靠右边还是靠左边,看width的正负。
# color:条形图的颜色。
# edgecolor : 条形图边框的颜色。
# linewidth : 条形图边框的宽度。如果为 0,则不绘制边框
示例:
某天电影票房数据:
movies = {
"流浪地球":40.78,
"飞驰人生":15.77,
"疯狂的外星人":20.83,
"新喜剧之王":6.10,
"廉政风云":1.10,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
直接通过获取字典的键值作为x,y轴数据
#票房单位亿元
movies = {
"流浪地球":40.78,
"飞驰人生":15.77,
"疯狂的外星人":20.83,
"新喜剧之王":6.10,
"廉政风云":1.10,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
# 中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.size'] = 13
# 设置图大小
plt.figure(figsize=(15,8))
x = list(movies.keys()) # 获取x轴数据(字典的键)
y = list(movies.values()) # 获取y轴数据(字典的值)
plt.bar(x,y,width=0.5,bottom=0,align='edge',color='g',edgecolor ='r',linewidth=2)
# 绘制标题
plt.title("电影票房数据",size=26)
# 设置轴标签
plt.xlabel("电影名",size=28)
plt.ylabel("票房/亿",size=28)
plt.show()
也可以利用字典创建DataFrame索引,通过data参数传入
#票房单位亿元
movies = {
"流浪地球":40.78,
"飞驰人生":15.77,
"疯狂的外星人":20.83,
"新喜剧之王":6.10,
"廉政风云":1.10,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
movies_df = pd.DataFrame(data={
"name":list(movies.keys()),"tickes":list(movies.values(