网站首页 > 技术文章 正文
我们经常使用 Microsoft Excel和 Microsoft Word 等应用程序轻松地绘制柱形图。如果我们想更好地控制图形创建过程,以编程方式创建此类图形将是最佳选择。
在本文中,我将向您展示如何使用 Python 创建柱形图。
使用 Pillow
要使用 Pillow 绘制柱形图,我们主要需要两个模块:Image 和 ImageDraw 模块,这两个模块都将从 Pillow (PIL) 导入。Image 模块将用于加载图像,而 ImageDraw 模块将用于创建 2D 图形。
「安装 Pillow」
pip install Pillow
现在,让我们逐步介绍程序的创建过程。
首先,我们需要一张空白图像 “blank.png”,我们将在其上绘制条形图。让我们加载这张空白图像准备绘制柱形图。
from PIL import Image, ImageDraw
img = Image.open('blank.png')
draw_img = ImageDraw.Draw(img)
我们使用列表,准备绘制所需的数据。
data = [15, 25, 55, 10, 100, 60]
然后,我们利用这些数据来绘制柱形图。我们可以把图表上的柱形视为线。因此,我们将使用 line() 方法来完成。
for i in data:
x = x + 30
y = 200 - int(i)
draw_img.line((x,200,x,y), width=10, fill=(255,0,0,255))
以上代码遍历列表,并使用列表中的数据绘制一个柱形图。需要特别注意的是,坐标轴的原点(0,0)位于图像的左上角。x = x + 30 用于限定间距。width=10 限定了线宽。fill=(255,0,0,255) 设置颜色。循环遍历完成后,利用列表数据,绘制了从(30,200)到(30,185),从(60,200)到(60,175),从(90,200)到(90,145),从(120,200)到(120,190),从(150,200)到(150,100),从(180,200)到(180,140)等多条线段。
最后,我们可以使用以下语句查看图像:img.show()。
完整代码:
from PIL import Image, ImageDraw
img = Image.open('blank.png')
draw_img = ImageDraw.Draw(img)
data = [15, 25, 55, 10, 100, 60]
x = 0
for i in data:
x = x + 30
y = 200 - int(i)
draw_img.line((x,200,x,y), width=10, fill=(255,0,0,255))
img.show()
输出柱形图:
使用 Matplotlib
Matplotlib 是一个可视化库,可以轻松在 Python 中创建可视化图形。
「安装 Matplotlib。」
pip install matplotlib
导入 Matplotlib 的子模块 pyplotplt。
import matplotlib.pyplot as plt
我们将数据转换为整数。
data = list(map(int, data))
利用列表长度,设置坐标 x 。
x = range(len(data))
然后,使用 Matplotlib 的 bar() 函数绘制柱形图,并显示该图形。
plt.bar(x,data)
plt.show()
完整代码:
import matplotlib.pyplot as plt
data = [15, 25, 55, 10, 100, 60]
data = list(map(int, data))
x = range(len(data))
plt.bar(x,data)
plt.show()
输出柱形图:
?
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。
?
猜你喜欢
- 2024-10-18 【Python】map函数的常见用法,你知道多少?
- 2024-10-18 Java 把一个 List 转换为字符串(java list转成字符串)
- 2024-10-18 Java Stream API:将线性集合添加到Map,键为对象属性
- 2024-10-18 SpringBoot读取配置文件中的数据到map和list
- 2024-10-18 「Java」咦,它就是Map和List的儿子吧
- 2024-10-18 一日一技:举例说明python中的map()方法
- 2024-10-18 详解 Python Map 函数(python map函数的用法)
- 2024-10-18 你应该知道的Java Map 的七个常见问题!
- 2024-10-18 Java核心数据结构(List、Map、Set)原理与使用技巧
- 2024-10-18 在JAVA中,List集合去重的方式有哪些?下面有你不知道的吗?
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)