HISTOGRAMME HORIZONTAL

cs_cbibi Messages postés 112 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 11 novembre 2007 - 30 nov. 2004 à 23:47
princesseamiramanai Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 21 novembre 2009 - 21 nov. 2009 à 19:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27803-histogramme-horizontal

princesseamiramanai Messages postés 2 Date d'inscription jeudi 23 avril 2009 Statut Membre Dernière intervention 21 novembre 2009
21 nov. 2009 à 19:26
Merci pour le code mais je le cherche en java qui a une idee!
titoine2000 Messages postés 29 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 2 mai 2012 16
10 août 2006 à 15:04
Exactement ce que je cherchais!
Merci pour le code original et aussi pour les modifications de ImmortalPC
9/10
+++
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
19 mai 2006 à 13:09
Salut,
Merci ;-)

nan tu peux pas faire
$values=array(if (($id1<>0)&&($id2<>0)){'Windows XP' => 58, 'Windows 98' => 20});
enfin à ma connaissance.
il faut faire
if (($id1<>0)&&($id2<>0)){
$values=array('Windows XP' => 58, 'Windows 98' => 20);
}else{
// ton code
}

@+
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
19 mai 2006 à 12:27
super ce script, il dechire c'est vrai qu'il marche mieux avec les modifications apportés par ImmortalPC
mais j'aimerai savoir si on peut faire des if dans le values c'est a dire quelque chose de ce style là

$values=array(if (($id1<>0)&&($id2<>0)){'Windows XP' => 58, 'Windows 98' => 20});
Urukai1 Messages postés 42 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 14 mars 2008
8 nov. 2005 à 18:22
salut
super j'aime beaucoup
tu pourrais eviter d'afficher plein de fois les images de taille 1 en affichant une seule image de taille qui convient

voici le bout de code que j'ai modifié

//for ($j=0; $j<($maxLength*$ratio[$i]); $j++) {
echo ""; // c'est ici le changement
//}

merci pour le code
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
8 juin 2005 à 17:17
Salut,
Pas super du tout !!!!
5/10 :-{
T'auais pu le mettre au normmes XHTML et CSS
Et c'est super lent et lourd.
Je l'ai totalement remixé et ajouté des fonctions :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-LANGUAGE" content="French" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css" media="screen">
body {
background-color: #FFFFFF;
text-align: left;
color: #000000;
}
.Italic {
font-style: italic;
}
</style>
<title>Les types d' OS utilisés</title>

</head>
Les types d' OS utilisés

<?php
// $values : Les valeurs a soumettre
// $order : L'ordre de classement: 0:Pas de classement; 1:Ordre croisant; 2:Ordre décroissant
// $showValue : Montrer la valeur (True/false))
// $maxLength : Longeur Maximale des Bars de statistiques
// $barHeight : Epesseur / Hauteur des bars de statistiques
// $spacing : espace entre les valeurs
// $gap : Espace entre le Nom et les bars de statistiques
// $tableWidth : Taille de la table (
)
// $colors : Couleurs ( a envoyer dans un array ex: $colors=array('blue','purple','gold');)
// $repeat : Répétition des couleurs si il n'y en a pas assez (true / false) ATTENTION : Si cette fonction est activé (true) vous risquez de perdre de la vitesse
// $Couleur_de_remplissage : L'image qui sera répètée jusqu'a la fin si il n'y a pas assez de couleur. En fonction des images données (ne pas mettre les extentions et les extentions doivent etre png)
$values=array('Windows XP' => 58, 'Windows 98' => 20, 'Windows 3.11' => 30, 'Windows 95' => 18, 'Linux' => 51,'Knoppix' => 12,'Inconnu' => 1);
$colors=array('blue','purple','gold');
histogram($values,2,true,200,12,10,6,'100%',$colors,false,'green');

//This is the function that echoes (not returns!) the table in HTML
function histogram($values,$order, $showValue, $maxLength, $barHeight, $spacing, $gap, $tableWidth, $colors, $repeat, $Couleur_de_remplissage){

$a=$values;
rsort($a);
$maxValue=$a[0];// On obtiens la valeur maximum qui correspond à $maxLength

// On classe les résultats
if($order !== 0){// 0 pas de classement
if($order === 1){
asort($values);// 1 Classement par ordre croissant
}else{
arsort($values);// 2 ou + Classement par ordre décroissant

}
}

// On séparre les Clés et leurs valeurs
$captions=array_keys($values);
$values=array_values($values);

// Transform values into ratio compared to $maxValue

$ratio=$values;
for($i=0;$i<count($ratio);$i++){
$ratio[$i]/=$maxValue;
}

// Nombre de Valeur
$nb_value=count($values);

if(empty($colors)){// Couleur par défaut si rien n'est indiqué
$colors=array('gold','gray','purple','blue','green');
}


$nb_color = count($colors);// Nombre de couleur
if($repeat){
// On répète les couleurs
while(count($colors)<$nb_value) {
$colors = array_merge($colors,$colors);
}
}else{
// On ne répète pas les couleurs
if($nb_color<$nb_value){
// Si il n'y a pas assez de couleur on ajout la couleur $Couleur_de_remplissage jusqu'a ce qu'il y en ai assez
$colors = array_pad($colors, $nb_value, $Couleur_de_remplissage);
}
}


echo '',\"\r\n\";

for($i=0;$i<$nb_value;$i++){
echo '----
',\"\r\n\"
,'',$captions[$i],', ',\"\r\n\"
,', ',\"\r\n\"
,'',"\r\n"
,' ';
if($showValue){
echo '('.$values[$i].')',"\r\n";
}
echo ', ',\"\r\n\";
}

echo '
',"\r\n";

// On supprime toutes les variables utilisées
unset($a,$values,$maxValue,$order,$captions,$ratio,$i,$nb_value,$colors,$repeat,$Couleur_de_remplissage,$tableWidth,$barHeight,$spacing,$gap,$barHeight,$maxLength,$showValue);
}
?>
</html>

Mais l'idée est bien.
@+
cs_cbibi Messages postés 112 Date d'inscription mardi 24 juin 2003 Statut Membre Dernière intervention 11 novembre 2007
30 nov. 2004 à 23:47
Extra ! 10
Rejoignez-nous