Pour les lignes plus lisses, le volume/densité des données peut-il être utilisé pour ajuster l'épaisseur de la ligne plus lisse ?J'utilise souvent Smoother + Overlay pour vérifier comment les variables catégorielles indépendantes affectent les variables continues dépendantes dans un graphique de tendance temporelle. Mais un problème que je rencontre souvent est que lorsque différentes catégories ont des volumes de données différents, les lignes les plus lisses sont tout aussi grandes même si une catégorie a 200 points de données et une autre catégorie a 4 points de données. Cela peut créer des parcelles occupées où il est difficile de distinguer les signaux importants. (Et si je vérifie un grand nombre de variables indépendantes différentes dans le rôle de superposition, il est fastidieux d'exclure les groupes de petits volumes de données pour chaque variable.)
Existe-t-il un moyen de faire quelque chose de similaire à : rendre la ligne Smoother plus épaisse s'il y a un volume de données élevé et plus fine s'il y a moins de données ? (Même MIEUX serait si la ligne changeait dynamiquement d'épaisseur en fonction du deltaX entre deux points : par exemple, si une catégorie a deux points à 1 jour d'intervalle et une autre catégorie a deux points à 2 jours d'intervalle, la ligne la plus lisse pour la première catégorie serait ~ deux fois plus épais.)
Voici le type de "graphique occupé" auquel j'ai affaire : des lignes d'épaisseur variable m'aideraient à déterminer en un coup d'œil quels signaux sont importants et lesquels ne le sont pas.

Re : Pour les lignes plus lisses, le volume/densité des données peut-il être utilisé pour ajuster l'épaisseur de la ligne plus lisse ?@markschwab ,
Je vous suggère simplement d'utiliser la variable catégorielle et de sélectionner les options d'affichage : Case à cocher et Trier par nombre
Notez que vous obtiendrez N et que vous pourrez facilement sélectionner plusieurs groupes. Le

Graph Builder(
Size( 526, 474 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 22 ) ), Smoother( X, Y, Legend( 23 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex ),
Display( :sex, "Check Box Display" ),
Order By Count( :sex )
)
)
);
J'espère que cela pourra aider.
Re : Pour les lignes plus lisses, le volume/densité des données peut-il être utilisé pour ajuster l'épaisseur de la ligne plus lisse ?Merci pour la méthode, c'est super ! Existe-t-il un moyen de le faire fonctionner lorsque la colonne est de type de données = caractère ? J'ai réussi à faire fonctionner votre méthode lorsque le type de données est numérique, mais lorsque je clique avec le bouton droit sur une colonne dont le type de données est Character, je ne vois pas d'option pour Aggregate.
Re : Pour les lignes plus lisses, le volume/densité des données peut-il être utilisé pour ajuster l'épaisseur de la ligne plus lisse ?@markschwab ,
Les filtres de données locaux, en particulier avec les transformations de colonne, sont très utiles pour votre tâche. Regardez la capture d'écran ci-dessous. Vous pouvez le faire à la main
- Créez votre tracé GraphBuilder
- Ajouter un filtre de données local
- Sélectionnez votre catégorie/superposition/colonne GroupBy, dans cet exemple âge . Faites un clic droit et sélectionnez Par groupe
- Cliquez à nouveau avec le bouton droit de la souris et sélectionnez Agréger > Compter . Si vous avez des données manquantes, sélectionnez votre Oui variable et sélectionnez Agréger>Compter
- Appuyez sur le signe plus pour ajouter ce filtre.
Voir la deuxième capture d'écran. Vous pouvez faire glisser les barres pour obtenir la taille relative souhaitée. Ou même regarder les données de faible densité seules.


Comme @txnelson , Jim, a mentionné que c'est assez facile à écrire. Voir ci-dessous.Cela dit, "N", ou count n'est pas le meilleur filtre.Vos données pourraient avoir 200 valeurs de poids par rapport à la taille pour les enfants de 12 ans, et 180 valeurs sont toutes pour 50 < taille < 53. En d'autres termes, aucune représentation pour les enfants de grande taille.
Ce n'est pas exactement ce que vous voulez, mais un filtre de données comme celui-ci peut être très utile lorsque vous recherchez des pépites d'informations sur des graphiques "désordonnés". Notez que vous pouvez également créer un filtre contextuel, où le filtre s'applique à plusieurs graphiques.Bonne chance dans votre recherche de quelque chose que vous pouvez utiliser maintenant.
Graph Builder(
Size( 615, 481 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :age ) ),
Elements( Points( X, Y, Legend( 50 ) ), Smoother( X, Y, Legend( 51 ) ) ),
Local Data Filter(
Add Filter(
columns(
Transform Column(
"Count[weight][age]",
Formula( Col Number( :weight, :age ) )
)
),
)
)
);
Re : Pour les lignes plus lisses, le volume/densité des données peut-il être utilisé pour ajuster l'épaisseur de la ligne plus lisse ?Outre la modification manuelle de l'épaisseur de la ligne, une fois le graphique affiché, il faudrait écrire un script pour le faire.Si vous êtes un scénariste, cela ne devrait pas être une tâche majeure.Vous trouverez ci-dessous un exemple de script câblé qui vous donnera une idée de la façon d'aborder la tâche.Il utilise l'exemple de table de données Big Class comme source de données

Graph Builder(
Variables( X( :weight ), Y( :height ), Overlay( :age ) ),
Elements( Points( X, Y, Legend( 9 ) ), Smoother( X, Y, Legend( 10 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
10,
Properties( 0, {Line Width( 4 )}, Item ID( "12", 1 ) ),
Properties( 1, {Line Width( 12 )}, Item ID( "13", 1 ) )
)}
)
)
);