PBToolboxAI v4 ← Site

chartcartesian — u_pbt_chartcartesian #

← Référence des composants · Sommaire du guide

Graphique cartésien : colonnes, barres, lignes, aires et nuages de points, sur un axe de catégories et un ou deux axes de valeurs. Le type se règle par série.

▶ Le voir en vrai — Application de démonstration, tuile Cartesian chart : l'aperçu, le code qui le produit et cette page, côte à côte.


En bref #

Userobjectu_pbt_chartcartesian
Classe d'itemsn_pbt_chartcartesian_series (of_item(key)) · n_pbt_chartcartesian_axis (of_axis(axis))
Sert àComparer des valeurs le long d'un axe — mois, produits, régions
PrincipeVous posez les catégories puis les séries ; les échelles, la grille et l'animation sont à nous

Démarrage rapide #

// Local variables
string ls_months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
double ld_sales[] = {420, 510, 480, 620, 700, 660}

// The categories FIRST : they fix how many values a series carries
uo_chart.of_set_categories(/*labels*/ ls_months)
uo_chart.of_add_series(/*key*/ "sales", /*label*/ "Revenue", /*type*/ u_pbt_chartcartesian.TYPE_BAR, /*values*/ ld_sales)

Le type appartient à la SÉRIE, pas au composant #

C'est la décision qui structure tout le reste. Un composant par type — un pour les barres, un pour les lignes — ne peut jamais produire un combiné : des barres surmontées d'une ligne d'objectif, avec un second axe. C'est pourtant la forme la plus demandée d'un tableau de bord.

Ici il y a un seul composant, et chaque série porte son is_type (TYPE_BAR, TYPE_LINE, TYPE_AREA, TYPE_SCATTER). Changer le type d'une série ne touche pas les autres.

ib_secondary place une série sur le second axe de valeurs. C'est ce qui permet à un nombre de commandes et à un chiffre d'affaires de cohabiter : sans lui, l'un des deux est une ligne plate au ras de l'axe.

of_set_categories vient avant les séries : leur nombre fixe combien de valeurs chaque série doit porter.

// Local variables
double ld_target[] = {400, 500, 550, 600, 680, 720}

// Bars and a line in the SAME chart : the type belongs to the series
uo_chart.of_add_series(/*key*/ "target", /*label*/ "Target", /*type*/ u_pbt_chartcartesian.TYPE_LINE, /*values*/ ld_target)

// And its own scale, when the two do not share a unit
uo_chart.of_item(/*key*/ "target").ib_secondary = true

Propriétés #

PropriétéTypeDéfautRôle
is_titlestring""Titre du graphique, affiché au-dessus
ib_show_legendbooleantrueAffiche la légende. Cliquer une entrée masque sa série — le moyen le moins cher de comparer deux séries sur cinq
is_legend_locationstringbottomOù va la légende (constantes LEGEND_*) : au-dessus ou au-dessous du tracé, ou à côté — START/END la posent en colonne sur un côté, et le tracé lui cède la place. START/END sont logiques : ils suivent le sens de lecture. Une position inconnue vaut le bas, et se relit telle
ib_show_gridbooleantrueLes traits de fond, à chaque valeur ronde. Sans eux, seule la forme reste lisible, jamais une valeur
ib_value_tooltipbooleantrueLe panneau des valeurs : quand la souris passe sur une catégorie, toutes les séries et leur valeur à cet endroit, d'un coup, et un réticule marque la colonne. Ce n'est pas is_tooltip (hérité), qui est l'infobulle du composant entier — celui-ci suit le pointeur et dit de quoi le graphique est fait. Chaque série écrit sa ligne avec son propre is_label_format ; une valeur absente n'a pas de ligne
is_orientationstringverticalColonnes ou barres (constantes ORIENTATION_*). Fait pivoter tout le repère, lignes et aires comprises
ib_stackedbooleanfalseEmpile les séries de barres au lieu de les mettre côte à côte. Lignes et aires ne s'empilent jamais : elles disent un niveau
is_stack_modestringvalueSomme ou part (constantes STACK_*). En percentage, chaque pile est ramenée à 100 : l'axe lit alors des parts et non des totaux — jusqu'à -100 quand des parts sont négatives. Ne veut rien dire hors empilement
ib_enabledbooleantrueGrisé : le composant continue de montrer ce qu'il montre — un graphique sans données n'est pas la même chose qu'un graphique que l'application a éteint — mais il cesse de répondre : ni clic, ni touche, ni entrée de légende, et il sort de l'ordre de tabulation. true par défaut
ib_animatedbooleantrueLe graphique arrive animé : les formes grandissent, les rubans se fondent. Si l'arrivée se rejoue à chaque rafraîchissement d'un tableau de bord, mieux vaut la couper — une arrivée qui recommence toutes les cinq secondes ne se termine jamais. Un poste réglé sur « moins d'animations » n'anime jamais, quoi qu'en dise cette propriété
ii_anim_durationinteger450Durée de cette arrivée, en millisecondes (0 à 5000)
is_anim_easingstringease-outCourbe de l'arrivée (constantes EASING_*) : linear, ease-out, back-out qui dépasse puis revient, bounce-out qui rebondit, elastic-out qui claque. C'est elle qui donne son caractère à l'animation
ii_anim_delayinteger0Décalage entre deux séries à l'arrivée, en millisecondes (0 à 1000). Elles entrent alors l'une après l'autre au lieu de surgir ensemble, ce qui donne le sens de lecture du graphique. 0 = toutes en même temps
is_theme_stylestring""Style visuel du composant (constantes THEME_STYLE_*) ; vide = celui de l'application, suivi à chaque changement
is_theme_modestring""Variante claire ou sombre (constantes THEME_MODE_*) ; vide = celle de l'application, suivie à chaque changement
il_theme_accentlong-1Couleur d'accent de ce composant (-1 = accent du thème)
is_tooltipstring""Info-bulle simple affichée au survol du composant
is_super_tooltip_titlestring""Titre de l'info-bulle enrichie (prend le pas sur is_tooltip)
is_super_tooltip_textstring""Texte de l'info-bulle enrichie (balisage riche accepté)
is_super_tooltip_imagestring""Image de l'info-bulle enrichie

Méthodes #

MéthodeRôle
of_set_categories ( string as_labels[] )Les libellés de l'axe des catégories. À appeler avant les séries. Renvoie 0 une fois appliqué, -2 si le composant n'est pas créé
of_set_value_labels ( string as_labels[] )Des libellés sur l'axe des valeurs. Vide — le cas normal — cet axe porte des nombres. Rempli, il porte des bandes comme l'axe des catégories : le repère à deux catégories dans lequel se dessine une carte de chaleur. Renvoie 0 une fois appliqué, -2 si le composant n'est pas créé
of_get_value_labels ( ref string as_labels[] )Remplit as_labels[] avec ce que l'axe des valeurs porte maintenant et renvoie le nombre. Zéro = il porte des nombres
of_add_heat_series ( string as_key, string as_label, long al_x[], long al_y[], double ad_weight[] )Une carte de chaleur : une cellule par couple (catégorie, libellé de valeur), colorée par son poids. al_x est le rang de la catégorie et al_y celui du libellé, à partir de 1 — les rangs d'un tableau PowerScript, qu'une double boucle écrit sans calcul. Poser les deux listes de libellés avant. Renvoie 0 une fois ajoutée, -5 si la clé est vide, contient / ou `, ou est déjà prise, -2` si le composant n'est pas créé
of_add_ohlc_series ( string as_key, string as_label, double ad_open[], double ad_high[], double ad_low[], double ad_close[] )Une série OHLC : l'étendue du bas au haut, un tiret à gauche pour l'ouverture et un à droite pour la clôture. Quatre nombres par point, et l'axe se lit sur le haut et le bas — les deux autres sont dedans par construction. Les quatre tableaux sont tronqués au plus court. Renvoie 0 une fois ajoutée, -5 si la clé est vide, contient / ou `, ou est déjà prise, -2` si le composant n'est pas créé
of_add_candle_series ( string as_key, string as_label, double ad_open[], double ad_high[], double ad_low[], double ad_close[] )Les mêmes quatre nombres, dessinés en chandeliers : une mèche du bas au haut, et un corps plein entre l'ouverture et la clôture. Un doji — ouverture égale à clôture — garde un pixel de corps, pour rester une ligne que l'œil retrouve. Renvoie 0 une fois ajoutée, -5 si la clé est vide, contient / ou `, ou est déjà prise, -2` si le composant n'est pas créé
of_set_series_ohlc ( string as_key, double ad_open[], double ad_high[], double ad_low[], double ad_close[] )De nouveaux cours pour une série financière déjà tracée. Ce que of_set_series_values est à une série de valeurs. Renvoie 0 une fois appliqué, -5 si aucune série ne porte cette clé ou si elle n'est pas financière, -2 si le composant n'est pas créé
of_get_series_ohlc ( string as_key, ref double ad_open[], ref double ad_high[], ref double ad_low[], ref double ad_close[] )Remplit les quatre tableaux avec ce que la série porte maintenant et renvoie le nombre de points. Une série non financière renvoie 0
of_add_series ( string as_key, string as_label, string as_type, double ad_values[] { , long al_color } )Ajoute une série avec son type — TYPE_BAR, TYPE_LINE, TYPE_AREA, TYPE_SCATTER ou TYPE_STEPLINE ; la surcharge prend aussi sa couleur (RGB()), sinon la palette choisit. Une valeur NULL (SetNull) est un trou : rien n'est dessiné, étiqueté ni cliquable à cet endroit, et une ligne s'y interrompt. Une clé déjà tenue est refusée, jamais remplacée : of_set_series_values et la poignée of_item changent une série qui existe. Renvoie 0 une fois ajoutée, -5 si le type n'est pas l'un de ces cinq (une carte de chaleur et les séries financières ont leur méthode), ou si la clé est vide, contient / ou `, ou est déjà prise, -2` si le composant n'est pas créé
of_set_series_values ( string as_key, double ad_values[] )De nouvelles valeurs pour une série déjà tracée, le reste inchangé. C'est l'appel d'un tableau de bord qui vit : la série garde son identité, donc les formes glissent au lieu de sauter. Une valeur NULL est un trou. Renvoie 0 une fois appliqué, -5 si aucune série ne porte cette clé ou si elle porte des points ou des cotations (of_set_series_points, of_set_series_ohlc les remplacent), -2 si le composant n'est pas créé
of_append_values ( string as_key, double ad_values[], long al_max_points )Un graphique en direct : pousse de nouvelles valeurs à la fin d'une série et retire les plus anciennes dès qu'elle en porte plus de al_max_points (0 = sans limite). Seules les nouvelles valeurs voyagent — la série n'est pas renvoyée à chaque tic. À coupler avec of_append_categories. Renvoie 0 une fois appliqué, -5 si aucune série ne porte cette clé ou si elle porte des points ou des cotations, -2 si le composant n'est pas créé
of_append_categories ( string as_labels[], long al_max_count )De nouvelles catégories à la fin de l'axe, les plus anciennes retirées au-delà de al_max_count (0 = sans limite) : les libellés d'un graphique en direct glissent avec ses valeurs. Renvoie 0 une fois appliqué, -2 si le composant n'est pas créé
of_add_point_series ( string as_key, string as_label, double ad_x[], double ad_y[] { , double ad_weight[] } )Une série positionnée par valeur sur les deux axes : x dit où le long de l'axe des catégories, y à quelle hauteur. Cet axe cesse alors d'être un axe de catégories — il devient un second axe de valeurs, avec ses propres graduations. Une surcharge prend un poids par point, qui donne la taille de la bulle. Renvoie 0 une fois ajoutée, -5 si la clé est vide, contient / ou `, ou est déjà prise, -2` si le composant n'est pas créé
of_set_series_points ( string as_key, double ad_x[], double ad_y[], double ad_weight[] )De nouveaux points pour une série qui en porte déjà. Ce que of_set_series_values est à une série de valeurs. Renvoie 0 une fois appliqué, -5 si aucune série ne porte cette clé ou si elle porte des valeurs ou des cotations, -2 si le composant n'est pas créé
of_get_series_points ( string as_key, ref double ad_x[], ref double ad_y[], ref double ad_weight[] )Remplit les trois tableaux avec ce que la série porte maintenant et renvoie le nombre de points. Une série de valeurs ne rend rien dans ad_x : elle n'a pas d'abscisse à elle
of_get_series_values ( string as_key, ref double ad_values[] )Remplit ad_values[] avec ce que la série porte maintenant et renvoie le nombre. Lecture vive : elle interroge le graphique, pas le dernier envoi
of_remove_series ( string as_key )Retire une série ; les autres gardent leur couleur et leur visibilité. Sa poignée (of_item) est détruite avec elle : un of_item suivant sur la même clé en crée une neuve. Renvoie 0 une fois retirée, -5 si aucune série ne porte cette clé, -2 si le composant n'est pas créé
of_clear ( )Vide le graphique — séries et catégories ; les poignées de série partent avec elles. Les axes gardent leurs réglages et leurs sections. Renvoie 0 une fois vidé, -2 si le composant n'est pas créé
of_set_value_format ( integer ai_decimals, string as_prefix, string as_suffix, boolean ab_thousands )Format des nombres de tout le graphique — axes, étiquettes et panneau des valeurs : décimales, préfixe, suffixe, séparateur de milliers. Les séparateurs décimal et de milliers sont ceux de la langue d'affichage. Efface aussi le format propre à chaque axe. Renvoie 0 une fois appliqué, -2 si le composant n'est pas créé
of_set_value_format ( string as_axis, integer ai_decimals, string as_prefix, string as_suffix, boolean ab_thousands )Le format d'un axe (AXIS_VALUE, AXIS_VALUE2, ou AXIS_CATEGORY quand il porte des nombres) : ses graduations, et les étiquettes et le panneau des séries tracées dessus — un montant d'un côté, un nombre de commandes de l'autre. Renvoie 0 une fois appliqué, -5 si l'axe n'est pas l'un des AXIS_*, -2 si le composant n'est pas créé
of_clear_value_format ( )Revient au format par défaut. Renvoie 0 une fois appliqué, -2 si le composant n'est pas créé
of_item ( string as_key )Renvoie la poignée d'une série, pour la modifier ensuite
of_axis ( string as_axis )Renvoie la poignée d'un axe (AXIS_CATEGORY, AXIS_VALUE, AXIS_VALUE2), pour le régler ensuite. Tout autre rôle ne rend aucune poignée (IsValid() est faux)
of_add_axis_section ( string as_axis, string as_key, double ad_from, double ad_to, long al_color )Une bande en travers du tracé, derrière les données : « sous 200 c'est mauvais ». Dessinée sous les formes, elle ne leur fait jamais concurrence. Sur l'axe des catégories, ad_from et ad_to sont des positions comptées à partir de 1 (2 à 3 couvre la deuxième et la troisième catégorie). Renvoie 0 une fois ajoutée, -5 si l'axe n'est pas l'un des AXIS_* ou si la clé est vide, contient / ou `, ou est déjà prise sur cet axe, -2` si le composant n'est pas créé
of_add_axis_threshold ( string as_axis, string as_key, double ad_at, long al_color, integer ai_thickness )Une ligne en travers du tracé à une valeur — un objectif, une limite. Même registre que les bandes, mais dessinée pour être vue. Renvoie 0 une fois ajoutée, -5 si l'axe n'est pas l'un des AXIS_* ou si la clé est vide, contient / ou `, ou est déjà prise sur cet axe, -2` si le composant n'est pas créé
of_clear_axis_sections ( string as_axis )Retire toutes les bandes et tous les seuils d'un axe. Renvoie 0 une fois vidé, -5 si l'axe n'est pas l'un des AXIS_*, -2 si le composant n'est pas créé
of_reset ( )Vide le graphique — poignées de série et d'axe comprises — et remet toutes les propriétés à leur valeur d'origine. Renvoie 0 une fois fait, -2 si le composant n'est pas créé

Sans clé (mode démo), le graphique ne dessine que ses 3 premières séries, légende comprise. Les autres restent dans le modèle — of_count, of_get_series_values et leurs poignées les voient — et la clé posée les montre sans que vous ayez rien à renvoyer.


Événements #

ÉvénementDéclenché quand
ue_point_clicked (string as_key, long al_index, double ad_value)Une barre, un point, une case ou une cotation a été cliqué — ou validé par Entrée : la clé de la série, la position du point dans la série, à partir de 1, et sa valeur — celle du point quelle que soit la forme de la série : le y d'un nuage, le poids d'une case de chaleur, la clôture d'une cotation. Au clavier, Gauche/Droite parcourent les catégories et Haut/Bas choisissent la série que le panneau souligne ; une série de points ou une carte de chaleur choisie se parcourt point par point. Un trou n'a rien à cliquer
ue_series_toggled (string as_key, boolean ab_visible)L'utilisateur a masqué ou remontré une série d'un clic dans la légende. Ce que le graphique affiche n'est alors plus ce que l'application a envoyé. Poser ib_visible est une valeur, comme cocher une case : cet événement rapporte le geste de l'utilisateur

L'animation est une entrée, pas un calcul : la géométrie finale est posée tout de suite, et seule l'arrivée est jouée. Un graphique jamais affiché — né hors écran, dans un onglet que personne n'ouvre — montre donc les bonnes barres, en silence.


Propriétés d'item #

PropriétéTypeDéfautRôle
is_labelstring""Le nom de la série, tel que la légende l'affiche
is_typestringbarbar · line · area · scatter · stepline (constantes TYPE_*). Change le dessin de cette série seule — c'est ce qui fait un graphique combiné. Seul un type de la même famille est pris : une série de valeurs parmi bar, line, area, scatter et stepline, une série financière entre ohlc et candle ; un autre est ignoré et is_type relit le type gardé
il_colorlong-1Couleur de la série (RGB()). -1 tant qu'aucune n'est posée : la palette choisit
ib_visiblebooleantruefalse masque une série sans la retirer — la légende garde le chemin du retour. Comme une case à cocher, c'est une valeur posée : ue_series_toggled rapporte, lui, le clic de l'utilisateur dans la légende
ib_secondarybooleanfalseTrace la série sur le second axe. C'est ainsi qu'un nombre et un montant vivent sur le même graphique
ib_data_labelsbooleanfalseÉcrit la valeur de chaque point à côté de lui. Éteint par défaut : sur cinquante points, les étiquettes couvrent le dessin qu'elles expliquent
is_label_formatstring""Ce que dit chaque étiquette et chaque ligne du panneau : #y# la valeur, #x# la catégorie (le x d'une série de points, la colonne d'une case de chaleur), #v# la ligne d'une case de chaleur, #label# le nom de la série, #open# #high# #low# #close# les cours ; le reste s'écrit tel quel — "$#y#K". Vide = la valeur seule. Une étiquette écrite dans une barre empilée prend le noir ou le blanc que sa barre porte
id_smoothnessdouble1Lignes et aires seulement : à quel point la ligne est arrondie, 0 = des segments droits, 1 = pleinement courbe, à la manière de LiveCharts. Un escalier l'ignore — il dit que le niveau a TENU jusqu'à la catégorie suivante, une courbe dirait qu'il a dérivé. Une courbe peut passer au-delà de ses points ; elle est découpée au cadre du tracé et ne peint jamais sur les libellés des axes
ib_fillbooleantrueLignes et aires : le lavis sous le trait, jusqu'à l'axe, dans la teinte de la série. C'est le retrait qui est l'acte délibéré — pour une ligne posée par-dessus autre chose (des colonnes, des bandes d'axe colorées) que le lavis cacherait
il_fill_colorlong-1La couleur de ce lavis. -1 = celle de la ligne elle-même
is_markerstring"circle"Lignes, escaliers et nuages : la FORME du marqueur posé sur chaque point (constantes MARKER_* : none, circle, square, triangle, diamond). Ce n'est pas de la décoration — deux lignes qui se croisent, imprimées en gris, se distinguent par leur marqueur et par rien d'autre
ii_thicknessinteger2Lignes et aires : l'épaisseur du trait, en pixels
ii_point_countinteger0Combien de points cette série porte — des valeurs ou des couples (x, y) (lecture seule)
il_cold_colorlong-1Cartes de chaleur seulement : la borne FROIDE de la rampe, celle de la lecture la plus légère. -1 = la rampe du composant, un seul bleu, du très pâle au soutenu
il_mid_colorlong-1La borne MÉDIANE. Trois bornes et non deux : interpoler d'un bout à l'autre délave le milieu de l'échelle, là où se tiennent la plupart des lectures. -1 = le bleu moyen du composant
il_hot_colorlong-1La borne CHAUDE, celle de la lecture la plus lourde. C'est elle que la légende affiche. -1 = le bleu soutenu du composant
il_up_colorlong-1Séries financières seulement : la couleur d'un point qui clôture au-dessus de son ouverture. -1 = le vert du composant
il_down_colorlong-1Et celle d'un point qui clôture en dessous. Deux couleurs parce que le sens est ce qu'on lit sur un tel graphique — une seule le masquerait. -1 = le rouge du composant

Propriétés d'axe #

PropriétéTypeDéfautRôle
is_titlestring""Titre écrit le long de l'axe. Vide = pas de titre, et pas de place réservée pour un
id_mindoubleNULLBorne basse imposée. Elle l'emporte sur les données et n'est pas arrondie : qui écrit 0 veut 0. NULL (SetNull) n'impose rien : l'axe suit à nouveau ses données, et une borne libre se relit NULL (IsNull), jamais 0. Libre, un axe de valeurs ne prend zéro que si une barre ou une aire s'y tient : des cours et des lignes se lisent sur leur propre étendue
id_maxdoubleNULLBorne haute imposée, même règle. Ce qui la dépasse est coupé au bord du tracé
id_stepdouble0Distance entre deux lignes de grille, en valeurs. 0 = un pas rond lu dans l'étendue
ii_label_rotationinteger0Rotation des libellés de cet axe, en degrés (-90 à 90) — noms de catégories ou graduations de valeurs. Douze noms de mois ne tiennent sous un graphique qu'inclinés ; quand ils ne tiennent toujours pas, le graphique en écrit un sur N, le premier et le dernier toujours
ib_separatorbooleantrueSes lignes de grille. Un axe de catégories en a rarement besoin, un axe de valeurs presque toujours
ii_section_countinteger0Combien de bandes et de seuils cet axe porte (lecture seule)
ib_logarithmicbooleanfalseAxes de valeurs seulement : une échelle logarithmique, graduée par décades (1, 10, 100…), chaque décade de la même hauteur — pour des chiffres qui couvrent plusieurs ordres de grandeur. Zéro et les valeurs négatives n'y ont pas de place et ne sont pas dessinés

Exemples #

Régler l'animation selon l'écran #

// A dashboard that refreshes every few seconds : no arrival animation
uo_chart.ib_animated = false

// Elsewhere, a slower arrival that is actually seen
uo_chart.ii_anim_duration = 1200

Ouvrir les lignes derrière un point #

// Event ue_point_clicked of uo_chart : the series key, the position of the
// point (from 1) and its value - enough to open the rows behind it
string ls_month

// On a series of values, the position IS the rank of the category
ls_month = is_months[al_index]
wf_open_orders(/*series*/ as_key, /*month*/ ls_month, /*amount*/ ad_value)

Un tableau de bord qui vit #

// Timer event of the window : new values for the same series, so the bars
// SLIDE to their new height instead of replaying their arrival
double ld_sales[]

// Read the figures, then hand them to the series already on the chart
ld_sales = wf_read_sales()
uo_chart.of_set_series_values(/*key*/ "sales", /*values*/ ld_sales)

Un graphique en direct qui glisse #

// Timer event of the window, every second : ONE new reading. Only that value
// travels ; past sixty, the oldest leaves on both the axis and the series
// Local variables
string ls_time[]
double ld_cpu[]

// The time of the reading on the axis, the reading itself in the series
ls_time[1] = String(Now(), "hh:mm:ss")
ld_cpu[1] = wf_read_cpu()
uo_chart.of_append_categories(/*labels*/ ls_time, /*max_count*/ 60)
uo_chart.of_append_values(/*key*/ "cpu", /*values*/ ld_cpu, /*max_points*/ 60)

Une mesure manquante, et le graphique en image #

// March was not measured : a NULL value is a gap, the line is cut there
// Local variables
double ld_temp[] = {18.5, 19.2, 0, 21.4}

// The third reading is missing : NULL, not zero
SetNull(ld_temp[3])
uo_chart.of_add_series(/*key*/ "temp", /*label*/ "Temperature", /*type*/ u_pbt_chartcartesian.TYPE_LINE, /*values*/ ld_temp)

// The chart as it is on screen, title and legend included, to a PNG file
uo_chart.of_save_as_png(/*path*/ "C:\Reports\temperature.png")

Une bande et un objectif sur l'axe des valeurs #

// A pale red band below 200 and a target line at 600, behind the bars
uo_chart.of_add_axis_section(/*axis*/ u_pbt_chartcartesian.AXIS_VALUE, /*key*/ "low", /*from*/ 0, /*to*/ 200, /*color*/ RGB(/*red*/ 255, /*green*/ 220, /*blue*/ 220))
uo_chart.of_add_axis_threshold(/*axis*/ u_pbt_chartcartesian.AXIS_VALUE, /*key*/ "target", /*at*/ 600, /*color*/ RGB(/*red*/ 200, /*green*/ 70, /*blue*/ 70), /*thickness*/ 2)

// The value axis says what it measures
uo_chart.of_axis(/*axis*/ u_pbt_chartcartesian.AXIS_VALUE).is_title = "Sales ($K)"

Bonnes pratiques #

Hérité du socle commun #

Ces membres existent sur tous les composants visuels — ils ne sont pas propres à celui-ci. Ils sont détaillés une seule fois, dans les chapitres transverses ; cette table dit seulement où les lire.

MembresRôleDétaillé dans
of_count · of_keys_at · of_hasParcourir ce que le composant contient3.2 Les items
of_resetRemettre le composant à zéro3.6 Remettre un composant à zéro : of_reset()
of_register_shortcut · of_clear_shortcutsRaccourcis clavier du composant3.5 Les raccourcis clavier
of_is_created · of_is_ready · of_get_last_errorS'il est né, s'il est prêt, ce qui a échoué3.7 Diagnostic
of_save_as_png · of_save_as_jpgExporter le rendu en image3.8 Exporter le rendu en image
of_set_redrawGrouper les modifications en un seul repaint3.10 Bonnes pratiques
of_preload_iconsIcônes affichées sans délaiAffichage instantané : of_icon
of_set_translationTraduire un libellé du composant5.2 Adapter un libellé : of_set_translation
of_focus_webviewDonner le focus au composant6.4 Clavier et focus
of_print · of_print_to_pdfImprimer, ou écrire un PDF6.9 Imprimer
of_set_property · of_get_property · of_component_namePiloter une propriété par son nom3.1 Le moteur de propriétés

Deux aides ne sont pas héritées : of_icon et of_escape_markup vivent sur n_pbt_utils. Déclarez-en une — n_pbt_utils lnv_utils, rien à créer — et appelez-les dessus.

← Référence des composants · Sommaire du guide