python 画条形图(柱状图)

目录

前言

基础介绍

月度开支的条形图


前言

条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。

当使用 Python 画条形图时,通常会使用 Matplotlib 库。Matplotlib 是一个广泛用于绘制图表和数据可视化的库,它提供了丰富的函数和方法来创建各种类型的图表,包括条形图。

Matplotlib 是一个用于绘制数据可视化图表的 Python 库。它提供了一个广泛的功能集,使得用户可以创建各种类型的图表,包括折线图、散点图、条形图、饼图、直方图等等。Matplotlib 可以轻松地将数据转换为可视化图表,帮助我们更好地理解和分析数据。

Matplotlib 库的主要特点和功能:

  1. 简单易用:Matplotlib 提供了直观的 API,使得创建基本图表变得简单而直接。
  2. 灵活性:Matplotlib 允许用户对图表进行高度定制,包括设置标题、标签、刻度线、线型、颜色、图例等等。
  3. 多种图表类型:Matplotlib 支持众多常见的图表类型,如折线图、散点图、条形图、饼图、直方图、盒图等等。
  4. 支持多种输出格式:Matplotlib 可以将图表保存为图片文件(如 PNG、JPG、SVG)、PDF 文件以及其他常见的图像格式。
  5. 与 NumPy 和 Pandas 集成:Matplotlib 与 NumPy 和 Pandas 库完美集成,使得数据的处理和可视化更加便捷。
  6. 支持 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()