Kui70 发表于 2020-9-11 12:53:03

如何用Python画出树型图

原始数据用“,”区分给出了每一“树枝”向上生长的“新树枝”数量,用“;”区分每一层的树枝。
比如,依据数据(2;2,3;2,0,1,0,2;1,0,2,0,0;2,1,1;0,0,0,0)做出来的图形如下:(实际图形越底层的“树枝”根据上层树枝的数量应该更粗!)

■ ■      ■ ■
   ■      ■ ■
   ■ ■      ■    ■ ■
   ■ ■    ■ ■■
       ■         ■
             ■

求教:Python的程序结构和实现画图的模块。

在线等,谢谢!

差不多先生air 发表于 2020-9-11 19:20:05

看看这个代码是不是你想要的结果
from turtle import *

# 设置色彩模式是RGB:
colormode(255)

lt(90)

lv = 14
l = 120
s = 45

width(lv)

# 初始化RGB颜色:
r = 0
g = 0
b = 0
pencolor(r, g, b)

penup()
bk(l)
pendown()
fd(l)

def draw_tree(l, level):
    global r, g, b
    # save the current pen width
    w = width()

    # narrow the pen width
    width(w * 3.0 / 4.0)
    # set color:
    r = r + 1
    g = g + 2
    b = b + 3
    pencolor(r % 200, g % 200, b % 200)

    l = 3.0 / 4.0 * l

    lt(s)
    fd(l)

    if level < lv:
      draw_tree(l, level + 1)
    bk(l)
    rt(2 * s)
    fd(l)

    if level < lv:
      draw_tree(l, level + 1)
    bk(l)
    lt(s)

    # restore the previous pen width
    width(w)

speed("fastest")

draw_tree(l, 4)

done()

Kui70 发表于 2020-9-11 20:31:36

差不多先生air 发表于 2020-9-11 19:20
看看这个代码是不是你想要的结果

谢谢!我用openpyxl在excel里面很复杂的实现了。我再思考一下看看有没有更简单的做法。
再次感谢!
页: [1]
查看完整版本: 如何用Python画出树型图