前言:
现时各位老铁们对“怎样用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绘制柱状图