import matplotlib.pyplot as plt import pandas as pd import numpy as np import seaborn as sns import fiftyone as fo def set_size(width, fraction=1, subplots=(1, 1)): """Set figure dimensions to avoid scaling in LaTeX. Parameters ---------- width: float Document textwidth or columnwidth in pts fraction: float, optional Fraction of the width which you wish the figure to occupy Returns ------- fig_dim: tuple Dimensions of figure in inches """ # Width of figure (in pts) fig_width_pt = width * fraction # Convert from pt to inches inches_per_pt = 1 / 72.27 # Golden ratio to set aesthetic figure height # https://disq.us/p/2940ij3 golden_ratio = (5**.5 - 1) / 2 # Figure width in inches fig_width_in = fig_width_pt * inches_per_pt # Figure height in inches fig_height_in = fig_width_in * golden_ratio * (subplots[0] / subplots[1]) fig_dim = (fig_width_in, fig_height_in) return fig_dim def export_dataset(dataset, export_dir, classes=["Healthy", "Stressed"]): label_field = "ground_truth" # The splits to export splits = ["val"] # Export the splits for split in splits: split_view = dataset.match_tags(split) split_view.export( export_dir=export_dir, dataset_type=fo.types.YOLOv5Dataset, label_field=label_field, split=split, classes=classes, )