|
发表于 2023-3-31 20:31:10
|
显示全部楼层
用 turtle 也可以,不过不好看
直方图:
- import turtle
- # 各行星的质量倍数
- mass_ratios = [0.166, 0.377, 0.638, 0.91, 1.0, 1.886, 2.530, 8.871]
- # 各行星的名字
- planet_names = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto']
- # 计算物品在各行星上的重量
- weights = [r * 100 for r in mass_ratios]
- # 创建Turtle对象并设置属性
- t = turtle.Turtle()
- t.speed(0)
- t.pensize(2)
- # 绘制直方图
- for i, w in enumerate(weights):
- t.penup()
- t.goto(i * 50 - 200, 0)
- t.pendown()
- t.left(90)
- t.forward(w)
- t.write(f"{w:.2f}")
- t.right(90)
- t.forward(20)
- t.right(90)
- t.forward(w)
- t.left(90)
- # 绘制横坐标和纵坐标
- t.penup()
- t.goto(-250, -150)
- t.pendown()
- t.forward(500)
- t.left(180)
- t.forward(10)
- t.right(90)
- t.forward(300)
- t.write('Weight (kg)')
- t.penup()
- t.goto(-200, -170)
- t.write('Planets')
- for i, p in enumerate(planet_names):
- t.penup()
- t.goto(i * 50 - 200, -200)
- t.write(p)
- # 点击屏幕关闭窗口
- turtle.done()
复制代码
折线图:
- import turtle
- # 各行星的质量倍数
- mass_ratios = [0.166, 0.377, 0.638, 0.91, 1.0, 1.886, 2.530, 8.871]
- # 各行星的名字
- planet_names = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto']
- # 计算物品在各行星上的重量
- weights = [r * 100 for r in mass_ratios]
- # 创建Turtle对象并设置属性
- t = turtle.Turtle()
- t.speed(0)
- t.pensize(3)
- # 绘制折线图
- for i, w in enumerate(weights):
- t.penup()
- t.goto(i * 50 - 200, w)
- t.pendown()
- t.dot(10)
- t.write(f"{w:.2f}")
- if i < len(weights) - 1:
- next_w = weights[i+1]
- t.goto((i+1) * 50 - 200, next_w)
- # 绘制横坐标和纵坐标
- t.penup()
- t.goto(-250, -150)
- t.pendown()
- t.forward(500)
- t.left(180)
- t.forward(10)
- t.right(90)
- t.forward(300)
- t.write('Weight (kg)')
- t.penup()
- t.goto(-200, -170)
- t.write('Planets')
- for i, p in enumerate(planet_names):
- t.penup()
- t.goto(i * 50 - 200, -200)
- t.write(p)
- # 点击屏幕关闭窗口
- turtle.done()
复制代码 |
|