comment tracer un histogramme en c à partir de 2 tableaux?comment tracer un histogramme en c
Répondre
Pour un histogramme aménagé sur le côté ...
Je suggère d'utiliser printf ("*") pour chaque incrément et printf ("\ n") pour commencer à sortir une nouvelle ligne. (Changer l'orientation est un exercice pour le lecteur).
En pensant un peu au problème, je ne suis pas convaincu que le "doublon" que j'ai identifié dans les commentaires soit vraiment réactif. Donc je vais dire quelques mots. Si vous avez choisi une approche artistique ASCII, vous n'avez plus qu'une décision à prendre: des barres verticales ou horizontales. Horizontal est facile: il suffit de décider de la mise à l'échelle puis d'imprimer les symboles bin_contents*scale
pour chaque bac. Le lien code-golf est vraiment utile comme un modèle de ce que à faire, même si ce n'est pas un bon exemple de comment pour l'écrire.
Cependant, de nombreux champs ont une attente de barre verticale dans la présentation des histogrammes. C'est un peu plus difficile, mais considèrent le pseudocode
sacle = find_scale(input_array)
max_height = find_max(input_array) * scale
for (i=max_height; i>=0; i--)
if (some condition)
print_in_N_digits(round(i/scale)) // to label the scale
else
print_in_N_digits() // lines with no labels
print " |" // set up the vertical axis
for (j=first_bin to lat_bin)
if (input[j]*scale >= i)
print("#")
else
print(" ")
print_new_line
print_in_N_digits(0)
print(" +")
for (j=first_bin to last_bin)
print("-")
print_new_line
print_in_N_digits()
print(" 0")
for (j=first_bin to last_bin)
if (some other condition)
print_bin_label
Cela marche juste en face de la page, à l'aide sur la colonne par bac et à chaque impression de niveau soit " "
ou "#"
pour chaque colonne. La partie d'impression d'histogramme est vraiment très facile. Toute la complexité provient de la gestion de l'axe et des étiquettes.
Vous attendez-vous à utiliser de beaux graphiques ou juste un texte de style ****? – djna
trop petit ** style, rien d'extraordinaire –
Assez bon dupliquer à [Histogramme de fréquence en C] (http://stackoverflow.com/questions/1413644/); la seule différence étant la nature des données. Sur une note moins sérieuse, vous pouvez trouver des implémentations de sortie d'histogrammes en plusieurs langues sur [Code golf: Word frequency chart] (http://stackoverflow.com/questions/3169051/), mais * ne les * utilisez pas car ils sont: les solutions de golf de code cassent généralement toutes sortes de bonnes normes de codage à la recherche de brièveté. – dmckee