Add analysis period filtering to utci_comfort_band_comparison plot
@Tom-Kingstone ya está trabajando en esto.
Desde el 30/9/2024.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Add the ability to filter each HourlyContinuousCollection with an AnalysisPeriod to the utci_comfort_band_comparison plot.
Here is a rough version of something that works. It needs additional verification, e.g. to ensure that the length of the analysis_periods is the same as the length of the utci_collections, it is handled if this is not the case, and comments need updating. Add any additional necessary imports too. Further comments welcome.
def utci_comfort_band_comparison(
utci_collections: tuple[HourlyContinuousCollection],
ax: plt.Axes = None,
identifiers: tuple[str] = None,
utci_categories: CategoricalComfort = UTCI_DEFAULT_CATEGORIES,
density: bool = True,
analysis_periods = [],
**kwargs,
) -> plt.Axes:
"""Create a proportional bar chart showing how different UTCI collections
compare in terms of time within each comfort band.
Args:
utci_collections (list[HourlyContinuousCollection]):
A list of UTCI collections.
ax (plt.Axes, optional):
The matplotlib Axes to plot on. Defaults to None which uses the current Axes.
identifiers (list[str], optional):
A list of names to give each collection. Defaults to None.
utci_categories (Categories, optional):
The UTCI categories to use. Defaults to UTCI_DEFAULT_CATEGORIES.
density (bool, optional):
If True, then show percentage, otherwise show count. Defaults to True.
**kwargs:
Additional keyword arguments to pass to the function.
Returns:
plt.Axes:
A matplotlib Axes object.
"""
for n, col in enumerate(utci_collections):
if not isinstance(col.header.data_type, LB_UniversalThermalClimateIndex):
raise ValueError(
f"Collection {n} data type is not UTCI and cannot be used in this plot."
)
if any(len(i) != len(utci_collections[0]) for i in utci_collections):
raise ValueError("All collections must be the same length.")
if ax is None:
ax = plt.gca()
# set the title
ax.set_title(kwargs.pop("title", None))
if identifiers is None:
identifiers = [f"{n}" for n in range(len(utci_collections))]
if len(identifiers) != len(utci_collections):
raise ValueError(
"The number of identifiers given does not match the number of UTCI collections given!"
)
#new stuff starts here
if len(analysis_periods) > 0 and len(analysis_periods) == len(utci_collections):
series_zips = zip(utci_collections, analysis_periods)
serieses = [collection_to_series(utci_collection.filter_by_analysis_period(analysis_period)) for utci_collection, analysis_period in series_zips]
counts = pd.concat(
[utci_categories.value_counts(i, density=density) for i in serieses],
axis=1,
keys=identifiers,
)
counts.T.plot(
ax=ax,
kind="bar",
stacked=True,
color=utci_categories.colors,
width=0.8,
legend=False,
)
# rest of file.....
- Lenguaje dominante
- Python
- Estrellas
- 3
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de BHoM/LadybugTools_Toolkit
-
Queenbee path fails to resolve with default resolverPosiblemente ocupada @jamesramsden-bh la tomó hace 46 días. Abiertotype:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
BHoM/LadybugTools_Toolkit#361 ·
-
type:feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
BHoM/LadybugTools_Toolkit#339 ·
-
evaporative_cooling_potential_epw missing comma when calling the series version of the methodPosiblemente ocupada @Tom-Kingstone la tomó hace 11 días. Abiertotype:bug
BHoM/LadybugTools_Toolkit#364 · 1 asignado ·
-
Grasshopper Sample ScriptsQuizá libre de nuevo @Felix-Mallinder la tomó hace 94 días y no hay ningún pull request abierto. Abiertotype:feature
BHoM/LadybugTools_Toolkit#352 · 1 asignado ·
-
Upgrade pollination versionPosiblemente ocupada @Tom-Kingstone la tomó hace 143 días. Abiertotype:external-api-changes
BHoM/LadybugTools_Toolkit#349 · 1 asignado ·
Todos los issues de BHoM/LadybugTools_Toolkit
Issues similares
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Posiblemente ocupada @geyazheng la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
langchain-ai/langchain-aws#1469 ·
Los mantenedores suelen responder en 1 día
-
GCToggler leaves collection enabled if the body re-enables itPosiblemente ocupada @Gambit-Checkmate la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 7 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
EESSI/docs#949 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
doronz88/pymobiledevice3#2176 ·
Los mantenedores suelen responder en 1 día
-
b4b usability
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día