python中绘制树的方法
一、前言
树结构在计算机科学中有着广泛的应用,如文件系统、数据库索引等。Python作为一门优秀的编程语言,提供了许多绘制树的方法,本文将介绍其中几种常用的方法。
二、使用turtle库绘制树
turtle库是Python自带的图形库,可以用来绘制各种图形。使用turtle库绘制树需要以下步骤:
1.导入turtle库和random库
import turtle
import random
2.定义一个函数draw_tree,该函数接受5个参数:t(画笔)、branchLen(分支长度)、angle(分支角度)、level(分支层数)、pensize(画笔粗细)。
def draw_tree(t, branchLen, angle, level, pensize):
if level > 0:
t.pensize(pensize)
t.forward(branchLen)
t.right(angle)
draw_tree(t, branchLen*random.uniform(0.7, 0.9), angle*random.uniform(0.8, 1.2), level-1, pensize-1)
t.left(angle*2)
draw_tree(t, branchLen*random.uniform(0.7, 0.9), angle*random.uniform(0.8, 1.2), level-1, pensize-1)
t.right(angle)
t.backward(branchLen)
3.设置画布大小和背景颜
t = turtle.Turtle()
myWin = turtle.Screen()
myWin.bgcolor("white")
t.left(90)
t.up()
t.backward(200)
t.down()matplotlib中subplot
t.color("green")
4.调用draw_tree函数绘制树
draw_tree(t, 100, 20, 10, 10)
三、使用matplotlib库绘制树
matplotlib库是Python中常用的数据可视化库,也可以用来绘制树。使用matplotlib库绘制树需要以下步骤:
1.导入matplotlib库和numpy库
import matplotlib.pyplot as plt
import numpy as np
2.定义一个函数plot_tree,该函数接受3个参数:parent_pos(父节点位置)、child_pos(子节点位置)、depth(深度)
def plot_tree(parent_pos, child_pos, depth):
if depth > 0:
for i in range(len(parent_pos)):
plt.plot([parent_pos[i], child_pos[i][0]], [depth-1, depth], 'k-')
plot_tree(child_pos[i], child_pos[i+1:], depth-1)
3.设置画布大小和背景颜
fig = plt.figure(figsize=(5,5))
ax = fig.add_subplot(111)
ax.set_xlim([-0.2, 1.2])
ax.set_ylim([-0.2, 1.2])
ax.axis('off')
4.调用plot_tree函数绘制树
parent_pos = [0.5]
child_pos = [[0.25, 0.75], [0.125, 0.375], [0.625, 0.875]]
plot_tree(parent_pos, child_pos, len(child_pos))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论