Python绘制高级图表(1):绘制条形统计图

一、初始化

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.1 效果图

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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值