Slider in `scatter_3d` and `scatter` makes some data points go missing
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 18.8k
- Forks
- 2.8k
- Merge medio
- 16 h 26 min
- PR fusionados (30 d)
- 21
Descripción
Only 2 out of 4 categories are plotted when I use a slider. Other data points do not appear at all. When I slide the slider, different categories are plotted. E.g. in the MWE below, only TP and FP show up when the slider is below 0.9. At 0.9 only TN and FN show up.
This behavior also happens for both 2d and 3d scatter plots. See the MWE below for 3d.
import numpy as np
import pandas as pd
import plotly.express as px
def plot_scatter_3d_mwe():
# Create a small DataFrame with fake data
data = {
'Dim1': np.random.rand(10),
'Dim2': np.random.rand(10),
'Dim3': np.random.rand(10),
'due': [1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
'serial_number': range(10),
'predicted_probabilities': [0.9, 0.8, 0.4, 0.2, 0.6, 0.7, 0.1, 0.5, 0.3, 0.95]
}
df = pd.DataFrame(data)
thresholds = np.arange(0, 1.1, 0.1)
all_frames = []
for threshold in thresholds:
# Recalculate predictions based on the threshold
predicted = (df['predicted_probabilities'] >= threshold).astype(int)
# Create the 4 categories for coloring: TP, TN, FP, FN
conditions = [
(df['due'] == 1) & (predicted == 1), # TP
(df['due'] == 0) & (predicted == 0), # TN
(df['due'] == 0) & (predicted == 1), # FP
(df['due'] == 1) & (predicted == 0), # FN
]
categories = ['TP', 'TN', 'FP', 'FN']
# Assign the categories to a new column
df['category'] = np.select(conditions, categories, default='Unknown')
df['threshold'] = threshold # Add threshold as a column for animation frame
all_frames.append(df.copy())
# Concatenate all frames for animation
df_all_frames = pd.concat(all_frames)
# Plot the scatter 3D with the categories as color and animate over thresholds
fig = px.scatter_3d(df_all_frames,
x='Dim1', y='Dim2', z='Dim3',
color='category',
animation_frame='threshold',
animation_group='serial_number')
fig.show()
# Call the function
plot_scatter_3d_mwe()
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.
Línea de trabajo
Ejecuta el MWE de Python proporcionado en plot_scatter_3d_mwe y compara el comportamiento de los diagramas de dispersión 2D y 3D animados a través de los frames de umbral. Traza cómo se representan animation_frame y animation_group en la figura generada; se considera terminado cuando las cuatro categorías y sus puntos de datos siguen disponibles en cada posición del deslizador.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- numpy, pandas, plotly, python
- Área
- data-visualization
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100