Python绘制高级图表(1):绘制条形统计图
2023-12-31 09:47:04
一、初始化
1. 引入库,设置画笔
from turtle import *
t = Turtle()
t.color("black")
t.width(3)
2. 为了美观,画出xy轴
(1) 普通型
from turtle import *
t = Turtle()
t.color("black")
t.width(3)
# 以画布为600 * 600为例
# 1. x轴
t.penup()
t.goto(-300, -300)
t.pendown()
# 1.1 画出直线
t.forward(600)
# 1.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 1.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 1.4 退回xy轴交接点
t.backward(600)
# 2. y轴
t.left(90)
# 2.1 画出直线
t.forward(600)
# 2.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 2.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 2.4 退回xy轴交接点
t.backward(600)
(2) 标准型
from turtle import *
t = Turtle()
t.color("black")
t.width(3)
# 以画布为600 * 600为例
# 1. x轴
t.penup()
t.goto(-350, -350)
t.pendown()
# 1.1 画出直线
t.forward(650)
# 1.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 1.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 退回xy轴交接点
t.backward(600)
# 2. y轴
t.left(90)
t.backward(50)
# 2.1 画出直线
t.forward(650)
# 2.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 2.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 退回xy轴交接点
t.backward(600)
3. 准备数据
data = [10, 20, 30]
二、尝试绘制一个柱子
1. 初步尝试
# 我们可以将其写进一个函数里
def draw(num):
t.color("skyblue")
t.fillcolor("skyblue")
t.begin_fill()
for i in range(2):
t.forward(50)
t.left(90)
t.forward(150)
t.left(90)
t.end_fill()
# 调试函数
draw(data[0])
效果:
2. 所有数据的绘制
# 全代码展示
from turtle import *
t = Turtle()
t.color("black")
t.width(3)
t.speed(0)
# 我们可以将其写进一个函数里
def draw(num):
t.color("skyblue")
t.fillcolor("skyblue")
t.penup()
t.forward(20)
t.pendown()
t.begin_fill()
for i in range(2):
t.forward(50)
t.left(90)
t.forward(num * 10)
t.left(90)
t.end_fill()
t.setheading(0)
t.penup()
t.forward(50)
t.pendown()
# 以画布为600 * 600为例
# 1. x轴
t.penup()
t.goto(-350, -350)
t.pendown()
# 1.1 画出直线
t.forward(650)
# 1.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 1.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 退回xy轴交接点
t.backward(600)
# 2. y轴
t.left(90)
t.backward(50)
# 2.1 画出直线
t.forward(650)
# 2.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 2.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 退回xy轴交接点
t.backward(600)
data = [10, 20, 30, 40, 50, 60]
t.setheading(0)
# 调试函数
for i in data:
draw(i)
三、最终代码
from turtle import *
t = Turtle()
t.color("black")
t.width(3)
t.speed(0)
# 我们可以将其写进一个函数里
def draw(num):
t.color("skyblue")
t.fillcolor("skyblue")
t.penup()
t.forward(20)
t.pendown()
t.begin_fill()
for i in range(2):
t.forward(50)
t.left(90)
t.forward(num * 10)
t.left(90)
t.end_fill()
t.setheading(0)
t.penup()
t.forward(50)
t.pendown()
# 以画布为600 * 600为例
# 1. x轴
t.penup()
t.goto(-350, -350)
t.pendown()
# 1.1 画出直线
t.forward(650)
# 1.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 1.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 退回xy轴交接点
t.backward(600)
# 2. y轴
t.left(90)
t.backward(50)
# 2.1 画出直线
t.forward(650)
# 2.2 画出右半边箭头
t.right(150)
t.forward(20)
t.backward(20)
# 2.3 画出左半边箭头
t.left(300)
t.forward(20)
t.backward(20)
t.right(150)
# 退回xy轴交接点
t.backward(600)
data = [10, 20, 30, 40, 50, 60]
t.setheading(0)
# 调试函数
for i in data:
draw(i)
效果:
文章来源:https://blog.csdn.net/joe_g12345/article/details/134041405
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!