下面我将为你介绍关于Python绘制柱状图的方法。包括绘制柱状图前的数据处理、可视化设置以及绘图模块的使用。
准备数据
首先我们需要准备数据,数据存放在一个列表中。例如:
numbers = [23, 45, 12, 56, 45, 35]
导入绘图模块和可视化设置
绘制柱状图可以使用Python中的matplotlib模块,需要首先导入该模块并进行可视化设置。例如:
import matplotlib.pyplot as plt
# 可视化设置
plt.figure(figsize=(8, 4), dpi=80)
plt.rcParams['font.sans-serif'] = ['Arial']
plt.rcParams['axes.unicode_minus'] = False
绘制柱状图示例1
接下来,我们以一个示例来展示如何绘制柱状图。我们使用上面准备的数字列表作为样本数据,并将其画成柱状图。代码如下:
# 绘制柱状图
plt.bar(range(len(numbers)), numbers, width=0.4)
# 添加x轴和y轴标签
plt.xlabel('Index')
plt.ylabel('Numbers')
# 显示图像
plt.show()
这段代码中,plt.bar()
函数的三个参数分别为:一个表示每个柱子的位置的列表,一个表示每个柱子的高度的列表,以及一个可选参数,表示柱子的宽度。我们使用range()
函数来生成表示每个柱子位置的列表。在标签设置中,我们使用plt.xlabel()
和plt.ylabel()
分别设置x轴和y轴标签。
绘制柱状图示例2
我们再来看一个更为复杂的示例,本次我们使用Pandas库导入csv文件,并且制作出从2016年到2019年,两个饭店每月收入的柱状图。代码如下:
import pandas as pd
# 导入数据
data = pd.read_csv('revenue.csv')
# 取出2016年至2019年两个饭店的每月收入数据
years = ['2016', '2017', '2018', '2019']
hotel1 = list(data.loc[data['Hotel']=='Hotel1'][years].sum())
hotel2 = list(data.loc[data['Hotel']=='Hotel2'][years].sum())
# 绘制柱状图
plt.bar(range(12), hotel1, color='red', alpha=0.75, label='Hotel1')
plt.bar(range(12), hotel2, color='blue', alpha=0.75, label='Hotel2', bottom=hotel1)
# 添加x轴和y轴标签
plt.xlabel('Month')
plt.ylabel('Total Revenue ($1000)')
# 添加图例
plt.legend()
# 显示图像
plt.show()
在这段代码中,首先我们导入了Pandas库,并使用pd.read_csv()
函数读入了csv文件的数据。然后,我们根据数据提取出Hotel1和Hotel2两家饭店的每月收入,并将它们用两个列表分别表示。接下来,使用两次plt.bar()函数,分别绘制每个饭店的柱状图。有几个参数需要注意,首先使用range(12)
生成了每个柱子的位置列表。其次,因为Hotel2的图形需要在Hotel1之上且累加两家饭店的数值,所以使用bottom
控制两个饭店柱状图的关系。最后,我们使用plt.legend()
函数添加图例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python绘制柱状图的方法 - Python技术站