Matplotlib是一个Python的2D绘图库,通过Matplotlib,开发者可以仅需要几行代码,便可以生成折线图,直方图,条形图,饼状图,散点图等。详情可查看Matplotlib库API文档
1. 条形图的绘制
条形图的绘制方式与折线图非常相似,只不过是换成了 plt.bar 方法。plt.bar 方法有以下常用参数:
(1) x :一个数组或列表,代表需要绘制的条形图的 x 轴的坐标点
(2) data:如果传递了data,那么 x 和 y 就可以为 data 中的 key。比如 data 是一个 DataFrame 对象,那么x和 y 就是这个 DataFrame 对象的某个列的名字
(3) width:每一个条形图的宽度,默认是0.8的宽度
(4) bottom:y 轴的基线,默认是0,也就是距离底部为0
(5) align:对齐方式,默认是 center ,也就是跟指定的 x 坐标居中对齐,还有为 edge (靠边对齐),具体靠右边还是靠左边,看 width 的正负
(6) color:条形图的颜色
返回值为 BarContainer ,是一个存储了条形图的容器,而条形图实际上的类型是 matplotlib.patches.Rectangle 对象
2. 竖向条形图
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
#加载字体所用的包
from matplotlib import font_manager
font = font_manager.FontProperties(fname="C:\Windows\Fonts\simhei.ttf",size=20)
#电影票房
movies = {
"流浪地球":40.78,
"飞驰人生":15.77,
"疯狂的外星人":20.83,
"新喜剧之王":6.10,
"廉政风云":1.10,
"神探蒲松龄":1.49,
"小猪佩奇过大年":1.22,
"熊出没·原始时代":6.71
}
x = list(movies.keys())
y = list(movies.values())
plt.figure(figsize=(15,5))
#方式一:指定x和y
plt.bar(x,y,width=0.5,align='edge',color='r',edgecolor='k')
movie_df = pd.DataFrame(data={
"names":list(movies.