前言
条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。
当使用 Python 画条形图时,通常会使用 Matplotlib 库。Matplotlib 是一个广泛用于绘制图表和数据可视化的库,它提供了丰富的函数和方法来创建各种类型的图表,包括条形图。
Matplotlib 是一个用于绘制数据可视化图表的 Python 库。它提供了一个广泛的功能集,使得用户可以创建各种类型的图表,包括折线图、散点图、条形图、饼图、直方图等等。Matplotlib 可以轻松地将数据转换为可视化图表,帮助我们更好地理解和分析数据。
Matplotlib 库的主要特点和功能:
- 简单易用:Matplotlib 提供了直观的 API,使得创建基本图表变得简单而直接。
- 灵活性:Matplotlib 允许用户对图表进行高度定制,包括设置标题、标签、刻度线、线型、颜色、图例等等。
- 多种图表类型:Matplotlib 支持众多常见的图表类型,如折线图、散点图、条形图、饼图、直方图、盒图等等。
- 支持多种输出格式:Matplotlib 可以将图表保存为图片文件(如 PNG、JPG、SVG)、PDF 文件以及其他常见的图像格式。
- 与 NumPy 和 Pandas 集成:Matplotlib 与 NumPy 和 Pandas 库完美集成,使得数据的处理和可视化更加便捷。
- 支持 Jupyter Notebook:Matplotlib 可以在 Jupyter Notebook 环境中无缝使用,使得数据分析和可视化更加交互性和动态化。
基础介绍
import matplotlib.pyplot as plt # 数据 categories = ['A', 'B', 'C', 'D', 'E'] values = [7, 13, 5, 17, 10] # 创建条形图 plt.bar(categories, values, color='skyblue') # 添加标题和标签 plt.title('Example Bar Chart') plt.xlabel('Categories') plt.ylabel('Values') # 显示条形图 plt.show()
- 使用 Matplotlib 创建了一个简单的条形图,并对其进行了一些定制。
- 首先,我们导入 Matplotlib 库,并使用
import matplotlib.pyplot as plt
将其重命名为plt
,以方便后续使用。- 定义了两个列表变量
categories
和values
,分别表示条形图的类别和对应的数值。在这个例子中,类别包括 'A'、'B'、'C'、'D'、'E',对应的数值分别是 7、13、5、17、10。- 使用
plt.bar(categories, values, color='skyblue')
创建了一个条形图。plt.bar
函数的第一个参数是类别列表categories
,第二个参数是对应的数值列表values
,通过这两个参数可以指定条形图的类别和高度。我们还通过color='skyblue'
参数设置了条形的颜色为天蓝色。- 使用
plt.title('Example Bar Chart')
添加了一个标题,将图表的标题设置为 'Example Bar Chart'。使用plt.xlabel('Categories')
和plt.ylabel('Values')
分别添加了 x 轴和 y 轴的标签,将 x 轴标签设置为 'Categories',y 轴标签设置为 'Values'。- 使用
plt.show()
显示生成的条形图。这个函数会打开一个窗口显示图表,你可以对图表进行交互操作,如放大、保存为图片等。
效果图:
月度开支的条形图
import matplotlib.pyplot as plt # 月份和开支数据 months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'] expenses = [2000, 2200, 2500, 1800, 2100, 2400, 2300, 2100, 1900, 2000, 2200, 2300] # 创建条形图 plt.bar(months, expenses, color='skyblue') # 添加标题和标签 plt.title('月度开支') plt.xlabel('月份') plt.ylabel('开支(元)') # 旋转 x 轴标签 plt.xticks(rotation=45) # 显示条形图 plt.show()
- 用 Matplotlib 创建了一个月度开支的条形图,并对其进行了一些定制。
- 导入了 Matplotlib 库,并使用
import matplotlib.pyplot as plt
将其重命名为plt
,以方便后续使用。- 定义了两个列表变量
months
和expenses
,分别表示月份和对应的开支数据。其中,months
包括了一年中的所有月份,而expenses
则包含了每个月的开支金额。- 然后,我们使用
plt.bar(months, expenses, color='skyblue')
创建了一个条形图。plt.bar
函数的第一个参数是月份列表months
,第二个参数是对应的开支数据列表expenses
。我们还通过color='skyblue'
参数设置了条形的颜色为天蓝色。- 使用
plt.title('月度开支')
添加了一个标题,将图表的标题设置为 '月度开支'。使用plt.xlabel('月份')
和plt.ylabel('开支(元)')
分别添加了 x 轴和 y 轴的标签,将 x 轴标签设置为 '月份',y 轴标签设置为 '开支(元)'。- 还使用了
plt.xticks(rotation=45)
将 x 轴的标签进行了旋转,使得月份的文字能够更好地展示并避免重叠。- 使用
plt.show()
显示生成的条形图。这个函数会打开一个窗口显示图表,你可以对图表进行交互操作,如放大、保存为图片等。
效果图:
在这里我们看到没有显示中文,而是不知名的乱码,嘶需要进行代码修改,添加以下代码
# 设置中文字体和禁用Unicode减号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
import matplotlib.pyplot as plt # 设置中文字体和禁用Unicode减号 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 月份和开支数据 months = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'] expenses = [2000, 2200, 2500, 1800, 2100, 2400, 2300, 2100, 1900, 2000, 2200, 2300] # 创建条形图 plt.bar(months, expenses, color='skyblue') # 添加标题和标签 plt.title('月度开支') plt.xlabel('月份') plt.ylabel('开支(元)') # 旋转 x 轴标签 plt.xticks(rotation=45) # 显示条形图 plt.show()