From 8892c991b004d64832632b712c7c70692c3ab9ae Mon Sep 17 00:00:00 2001 From: "armindamon.riess" <armindamon.riess@uzh.ch> Date: Wed, 14 Dec 2022 13:44:55 +0100 Subject: [PATCH] python script to plot octtree --- plots/treeplot.png | Bin 0 -> 23544 bytes plots/treeplot.py | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 plots/treeplot.png create mode 100644 plots/treeplot.py diff --git a/plots/treeplot.png b/plots/treeplot.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6f7a84769e89445fa7a21f8d9b656bb8dd0741 GIT binary patch literal 23544 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 literal 0 HcmV?d00001 diff --git a/plots/treeplot.py b/plots/treeplot.py new file mode 100644 index 0000000..c5ec2c0 --- /dev/null +++ b/plots/treeplot.py @@ -0,0 +1,23 @@ +import numpy as np +import matplotlib.pyplot as plt +from matplotlib.patches import Rectangle + +tree = np.loadtxt("../out/tree.txt") +pos = np.loadtxt("../data/data.txt") + +x = pos[:,2] +y = pos[:,3] + +fig, ax = plt.subplots() + +# ax.scatter(tree[:,0], tree[:,1], color='r', s=0.1) +ax.scatter(x, y, color='b', s=0.1) + +for i in range(tree.shape[0]): + size = tree[i,3] + ax.add_patch(Rectangle((tree[i,0] - size, tree[i,1] - size), 2*size, 2*size, linewidth=1, edgecolor='k', facecolor='none', alpha=0.5)) + # ax.text(tree[i,0], tree[i,1], str(tree[i,4]), fontsize=8, horizontalalignment='center', verticalalignment='center') + ax.set_aspect('equal') + +plt.savefig("treeplot.png") +plt.show() \ No newline at end of file -- GitLab