龙空技术网

教你怎么使用python画柱状图

机器世界 74

前言:

现时各位老铁们对“怎样用python绘制柱状图”大概比较关切,各位老铁们都需要剖析一些“怎样用python绘制柱状图”的相关内容。那么小编同时在网摘上网罗了一些有关“怎样用python绘制柱状图””的相关文章,希望你们能喜欢,姐妹们一起来了解一下吧!

上次我们讲了画函数图像,现在我们来学怎么画柱状图。

首先在桌面新建一个文件夹523,把data.xlsx文件也放到这个文件夹里面。

然后用Visual Studio Code(后面简称VSCode)打开这个文件夹,快捷方式是右键然后选择VSCode打开。

可能会弹出下面这样的提示,选择箭头那个就行。

同样地,打开Visual Studio Code(后面简称VSCode),点击New File(中文版是“新建文件”),然后选择Jupyter Notebook。

点击下图所指图标,然后命名为a.ipynb:

本次案例需要使用到第三方库 numpy、matplotlib、openpyxl。如果没有安装过,需要通过以下pip命令安装:

pip install numpypip install matplotlibpip install openpyxl

numpy是一个计算库,方便各种数学计算;matplotlib是绘图库,用来绘制各种图形;openpyxl用来读取excel文件的数据。

在VSCode中打开a.ipynb,输入以下代码到对应位置

import matplotlib.pyplot as pltimport numpy as npimport openpyxlWb = openpyxl.load_workbook('data.xlsx')ws = wb.activefor i, row in enumerate(ws.iter_rows(), 1):    if i == 1:        continue  # 跳过第一行    print(row[0].value,end='\t')    print(row[1].value)wb.close()

上图第二块代码的输出中我们看到,成功得到了excel的数据:

简单解释下前面代码,导入那块就不说了

wb = openpyxl.load_workbook('data.xlsx')  # 打开文件ws = wb.active  # 拿到激活的sheet, 就是一打开excel就看到的那个表格就是sheet

下面这段代码主要是跳过第一行表头,时间、年末总人口...

for i, row in enumerate(ws.iter_rows(), 1):    if i == 1:        continue  # 跳过第一行

变量row表示某一行,row[0]表示某行的0列也就是“时间”这列的单元格,通过“.value”得到数值“20xx年”,row[1].value得到某行的1列数值也就是年末总人口(万人)。

OJBK,现在我们用时间当X轴,人口当Y轴,所以需要两个变量x和y,修改第二块代码如下:

wb = openpyxl.load_workbook('data.xlsx')  # 打开文件ws = wb.active  # 拿到激活的sheet, 就是一打开excel就看到的那个表格就是sheetx = []y = []for i, row in enumerate(ws.iter_rows(), 1):    if i == 1:        continue  # 跳过第一行    x.append(row[0].value)    y.append(row[1].value)print(x)print(y)wb.close()

现在x和y就是我们要的数据了,接下来准备画图。

点击这个图标添加一块代码

只需要复制以下两行代码

plt.bar(x, y)plt.show()

就可以画柱状图,是不是超简单!

VSCode!启动!

嗯,不错,但是横坐标怎么变火星文了???不要慌,其实只是字体问题,设置下字体就行了,同时还要设置一下图像宽度,让x轴没这么挤。

fig, ax = plt.subplots()plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签SimHeiplt.rcParams['figure.figsize']=(16, 9)  # 设置图像比例为16:9, 让图像更宽, 否则x轴太挤ax.bar(x, y)plt.show()

完美!

标签: #怎样用python绘制柱状图