Python 使用turtle绘制条形图的程序
数据的图形化表示提供了对数据的复杂子结构更深入的理解,并帮助我们轻松解释隐藏模式和趋势。想象一下,如果我们能够以编程的方式直接绘制相似的关系,那将是多么方便?Python提供了一个丰富的模块,专门用于执行此类操作,它被称为“ turtle ”。
“turtle”模块是Python的内置库,允许我们在“ Turtle图形屏幕 ”上绘制图形。在本文中,我们将使用这个turtle模块创建一个条形图。
理解Turtle模块
turtle模块使用一个虚拟的Turtle对象来创建图形。与该模块相关的不同函数使得这个Turtle对象可以在屏幕上移动和绘制。让我们谈谈我们需要创建条形图所需的不同函数。
用于创建条形图的Turtle函数
- Turtle() - 这个函数创建一个新的Turtle对象。
- fillcolor() - 这个函数将Turtle颜色设置为要填充的颜色。
- begin_fill() - 这个函数开始填充过程并记住起点。
- left() - 这个函数使Turtle向左转90度。
- right() - 这个函数使Turtle向右转90度。
- forward() - 这个函数使Turtle按指定的单位向前移动。
- write() - 这个函数将一个字符串(高度值)写在条上。
- end_fill() - 这个函数关闭条并停止填充过程。
所有这些函数一起创建一个条形图,但我们必须准备一个适当的程序以使这些函数作为一个整体工作。既然我们已经了解了机制,让我们来绘制一个条形图。
绘制条形图
turtle模块受到LOGO编程语言的启发,该语言允许用户在虚拟屏幕上创建形状。要绘制一个条形图,我们需要将Turtle设置在屏幕的左下角。默认情况下,Turtle位于中心(0,0),但我们可以借助 “setworldcoordinates()”方法 改变这些坐标。
该方法允许用户重新缩放窗口并使其适应数据。它需要四个坐标:
- 左下角的X&Y轴坐标
- 右下角的X&Y轴坐标
- 左上角的X&Y轴坐标
- 右上角的X&Y轴坐标
此方法作为重置工具,根据数据的大小调整坐标。我们使用最大的条形图高度值和总共的空间值来设置这些坐标。
示例
以下是上述概念的实现。
- 我们将创建一个函数,将“turtle对象”,“条形图高度”和“条形图颜色”作为参数。然后,我们将编写函数来绘制不同高度和颜色的条形图。
-
不同高度和颜色值将以列表形式传递,并通过 迭代 为每个值调用该函数。
-
最后,我们将使用turtle对象创建一个画笔并开始绘制过程。绘制完成后,我们将关闭turtle实例。通过“ Screen() ”方法创建turtle图形屏幕。
示例
import turtle
def BarGraph(turtleOBJ, Bar_height, Bar_color):
turtleOBJ.fillcolor(Bar_color)
turtleOBJ.begin_fill()
turtleOBJ.left(90)
turtleOBJ.forward(Bar_height)
turtleOBJ.write(str(Bar_height))
turtleOBJ.right(90)
turtleOBJ.forward(80)
turtleOBJ.right(90)
turtleOBJ.forward(Bar_height)
turtleOBJ.left(90)
turtleOBJ.end_fill()
Bar_heights = [23, 94, 42, 150, 200, 56, 240,40]
Bar_color = ["orange", "purple", "green", "red", "black", "grey", "white", "violet"]
maxBarVal = max(Bar_heights)
Graph_Range = len(Bar_heights)
Space = 20
screen = turtle.Screen()
screen.setworldcoordinates(0 - Space, 0 - Space, 50 * Space, maxBarVal + Space)
screen.bgcolor("Brown")
turtleOBJ = turtle.Turtle()
turtleOBJ.pensize(3)
for bar in range(len(Bar_heights)):
BarGraph(turtleOBJ, Bar_heights[bar], Bar_color[bar])
screen.exitonclick()
输出
其他见解
我们可以给这个柱状图添加框架,并设计X轴和Y轴的刻度。Turtle模块严格用于基于我们拥有的数据创建图形。我们不能用它进行统计估计。虽然它可以与其他强大的Python库(如“ NumPy ”和“ Pandas ”)协同工作,赋予它们统计和可视化能力。对于更深入和精确的估计,我们使用“ matplotlib ”库。
结论
本文解释了Turtle模块的机制以及如何使用它来创建一个 柱状图 。我们讨论了可以用来以编程方式在Turtle图形屏幕上生成柱状图的各种函数和参数。程序中使用的值基于我们想要可视化的数据,不能进行进一步的统计解释。