python生成树形图_使用Python生成树形图案 | 学步园

先看一下效果,见下图。

上面这颗大树是使用Python + Tkinter绘制的,主要原理为使用分形画树干、树枝,最终叶节点上画上绿色圆圈代表树叶。当然,为了看起来更真实,绘制过程中也加入了一些随机变化,比如树枝会稍微有些扭曲而不是一条直线,分叉的角度、长短等都会随机地作一些偏移等。

以下是完整源代码:

# -*- coding: utf-8 -*-

import Tkinter

import sys, random, math

class Point(object):

def __init__(self, x, y):

self.x = x

self.y = y

def __str__(self):

return ": (%f, %f)" % (self.x, self.y)

class Branch(object):

def __init__(self, bottom, top, branches, level = 0):

self.bottom = bottom

self.top = top

self.level = level

self.branches = branches

self.children = []

def __str__(self):

s = "Top: %s, Bottom: %s, Children Count: %d" % /

(self.top, self.bottom, len(self.children))

return s

def nextGen(self, n = -1, rnd = 1):

if n <= 0: n = self.branches

if rnd == 1:

n = random.randint(n / 2, n * 2)

if n <= 0: n = 1

dx = self.top.x - self.bottom.x

dy = self.top.y - self.bottom.y

r = 0.20 + random.random() * 0.2

if self.top.x == self.bottom.x:

# 如果是一条竖线

x = self.top.x

y = dy * r + self.bottom.y

elif self.top.y == self.bottom.y:

# 如果是一条横线

x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python关系树形图是一种用于展示数据分析师的知识结构的图化表示方法。它通过绘制干、枝和叶节点来呈现状,其中干代表主要知识点,枝代表相关的子知识点,叶节点代表具体的概念或技能。在绘制过程中,使用Python Tkinter库进行绘制,并通过添加一些随机变化使其看起来更真实。枝会稍微扭曲而不是一条直线,分叉的角度和长度等会随机偏移。这种树形图可以帮助人们更好地理解和组织知识结构。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用Python生成树图案 | 学步](https://blog.csdn.net/weixin_39659748/article/details/110777063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【Python 实战基础】如何绘制状图展示Python数据分析师的知识结构](https://blog.csdn.net/qq_39816613/article/details/125733712)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值