(d, title=None, show=False)
| 65 | return default |
| 66 | |
| 67 | def make_dataset_pie_plot(d, title=None, show=False): |
| 68 | domains = [] |
| 69 | traj_nums = [] |
| 70 | for k, v in d.items(): |
| 71 | domains.append(f"{k} - {v // 1000}K") |
| 72 | traj_nums.append(v) |
| 73 | domains = np.array(domains) |
| 74 | traj_nums = np.array(traj_nums) |
| 75 | # sort by number of trajectories |
| 76 | idx = np.argsort(traj_nums)[::-1] |
| 77 | domains = domains[idx] |
| 78 | traj_nums = traj_nums[idx] |
| 79 | # draw the dataset mixture as a pie plot |
| 80 | fig1, ax1 = plt.subplots(figsize=(28, 10)) |
| 81 | traj_prob = np.array(traj_nums) / np.sum(traj_nums) |
| 82 | patches, _ = ax1.pie(traj_prob, startangle=90) |
| 83 | ax1.axis("equal") |
| 84 | ax1.legend(patches, domains, loc="center left", bbox_to_anchor=(0.7, 0.5), prop={"size": 25}) |
| 85 | if title is not None: |
| 86 | ax1.set_title(title, fontsize=60) |
| 87 | if show: |
| 88 | plt.show() |
| 89 | fig1.canvas.draw() |
| 90 | return Image.frombytes("RGB", fig1.canvas.get_width_height(), fig1.canvas.tostring_rgb()) |
nothing calls this directly
no outgoing calls
no test coverage detected