算法
兔子的洋葱圈
这个作者很懒,什么都没留下…
展开
-
不改变相对位置的前提下把点散开2
之前的方法只适合数据点只有一个中心的情况,有多个中心的数据可能会有反效果。 思路2:不考虑中心,按点和下一个点的距离进行判断和调整。 最终呈现的结果中相邻的两个点之间的距离占坐标轴总长度的1/25。依次排查各个点,如果和下一个点的距离小于这个最小值,就进行调整。 import math from matplotlib import pyplot as plt def find_min_dis(xdata): """找两点间允许的最小距离""" return (max(xdata) - mi原创 2020-09-13 16:17:30 · 156 阅读 · 0 评论 -
不改变相对位置的前提下把点散开1
实际问题:有一堆数据点,知道它们的横纵坐标,横纵坐标的范围不在一个数量级。这些点最终展示到可视化界面时(每个点上还写了文字说明),一些离得太近的点相互叠加没办法看。需要在不改变这些点的相对位置的情况下让离得太近的点散开(最终的结果用于概览,不表示精确的输出)。 横纵坐标范围不是同一个数量级,所以需要分别扩散。 初始思路:曲线投影然后拉长。 思路如上图,三个点经过三次变换,离右侧点近的点和它的距离拉远了,离右侧点远的点距离未发生改变。先找到聚集的一堆点的中心,然后按这样变换,离中心近的点距离会拉开,离中心远原创 2020-09-13 15:43:27 · 235 阅读 · 0 评论 -
按阈值均匀切分子组
一个有序数组,要切分成若干个子组,每个子组中的数求和都不超过100。 def split_numlist(numlist, hold=100): some_num = 0 # 子组数值和 nums = [] # 子组 sub_numlist = [] # 子组切分结果 for n in numlist: some_num += n if some_num >= hold: if len(num原创 2020-07-25 12:08:33 · 111 阅读 · 0 评论