Salut tout le monde,
J'ai une question apparemment simple à laquelle je ne trouve pas la réponse. J'ai créé un graphique à barres et j'aimerais personnaliser la couleur de remplissage de chaque graphique à barres individuellement. Le graphique représente le coût sur l'axe y et la marque de voiture sur l'axe x, chaque marque de voiture ayant deux ans. La raison en est que j'ai une couleur de remplissage générale en fonction de l'année (2017 et 2018), mais je voudrais mettre en évidence certaines marques de voitures d'une couleur différente (par exemple, Honda 2017 serait différente du reste des marques de voitures 2017, et Honda 2018 serait différent du reste des marques de voitures 2018).
Existe-t-il un moyen de le faire facilement sur la construction de graphes ou sur le code complet?
Merci d'avance.
Le script ci-dessous prolonge celui de Jim, @txnelson , excellente suggestion, montrant comment définir des couleurs spécifiques à l'aide de JSL pour modifier le Modèle de légende.
Names Default to Here(1);
dt = open("$sample_data/big class.jmp");
gb = dt << Graph Builder(
show control panel(0),
Variables(
X( :age ),
X( :sex, Position( 1 ) ),
Y( :height ),
Color(
Transform Column(
"Transform[age]",
Character,
Nominal,
Formula( (Char( :age ) || " ") || :sex )
)
)
),
Elements( Bar( X( 1 ), X( 2 ), Y, Legend( 12 ) ) )
);
//note Item ID count begins with 0
gb << SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
//12,
Properties( 0, {Fill Color( 5 )}, Item ID( "12 F", 1 ) ),
Properties( 1, {Fill Color( 5 )}, Item ID( "12 M", 1 ) ),
Properties( 2, {Fill Color( 20 )}, Item ID( "13 F", 1 ) ),
Properties( 3, {Fill Color( 20 )}, Item ID( "13 M", 1 ) ),
Properties( 4, {Fill Color( 6 )}, Item ID( "14 F", 1 ) ),
Properties( 5, {Fill Color( 6 )}, Item ID( "14 M", 1 ) ),
Properties( 6, {Fill Color( 27 )}, Item ID( "15 F", 1 ) ),
Properties( 7, {Fill Color( 27 )}, Item ID( "15 M", 1 ) ),
Properties( 8, {Fill Color( 26 )}, Item ID( "16 F", 1 ) ),
Properties( 9, {Fill Color( 26 )}, Item ID( "16 M", 1 ) ),
Properties( 10, {Fill Color( 12 )}, Item ID( "17 F", 1 ) ),
Properties( 11, {Fill Color( 12 )}, Item ID( "17 M", 1 ) )
)}
)
);

Une solution consiste à créer une nouvelle colonne qui est la concaténation de vos colonnes Year et Car
combiner = char(:année) || " " || :voiture;
Utilisez ensuite cette nouvelle colonne comme colonne de couleur dans votre générateur de graphiques. Vous pouvez ensuite faire de chaque barre individuelle les couleurs que vous voulez qu'elles soient.Vous trouverez ci-dessous un exemple similaire utilisant l'exemple de tableau de données Big Class

Parfois, j'ai le même problème.
Avec 6 éléments dans la colonne A et 2 éléments dans la colonne B, c'est toujours amusant de colorer manuellement les 6x2 sous-ensembles distincts.
Mais il existe d’autres cas où l’attribution manuelle des couleurs correctes prend un certain temps.
cas de candidature :
- utiliser la colonne A comme couleur
- utilisez la colonne B = exclus() pour donner une couleur grise aux points exclus
Pour de telles applications, GraphBuilder : écraser la zone de dépôt pourrait être une fonctionnalité puissante.