begin process at 2010 07 31 05:00:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > THCHARTS: HISTOGRAMME AVEC PLUSIEURS SERIES

THCHARTS: HISTOGRAMME AVEC PLUSIEURS SERIES


 Information sur la source

Note :
10 / 10 - par 7 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :graphique, chart, histogramme, série, barre Niveau :Débutant Date de création :05/03/2005 Date de mise à jour :16/04/2005 12:01:05 Vu / téléchargé :19 653 / 1 338

Auteur : TUHABITES

Ecrire un message privé
Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
-Fonction: créer des histogrammes permettant de représenter plusieurs series.
(voir la capture)

-Caractéristiques: génération d'images à la volée, utilisation des dégradés du GDI+, compression des images.

-Commentaires: Excusez-moi pour la mauvaise qualité du code.    

Source

  • <%@ Page Language="C#" %>
  • <%@ import Namespace="ThCharts" %>
  • <%@ import Namespace="System.Data" %>
  • <script runat="server">
  • private void Page_Load(object sender, System.EventArgs e)
  • {
  • float[] graduation={250f,500f,750f,1000.0f};
  • DataSet ds=new DataSet();
  • ds.ReadXml("data.xml");
  • Histogram hist=new Histogram(ds.Tables[0],graduation);
  • hist.Render(this.Context);
  • }
  • </script>
<%@ Page Language="C#" %>
<%@ import Namespace="ThCharts" %>
<%@ import Namespace="System.Data" %>
<script runat="server">
    
    private void Page_Load(object sender, System.EventArgs e)
        {
    
           float[] graduation={250f,500f,750f,1000.0f};
                DataSet ds=new DataSet();
                ds.ReadXml("data.xml");
    
                Histogram hist=new Histogram(ds.Tables[0],graduation);
                hist.Render(this.Context);
    }
</script>

 Conclusion

Dans le Zip la page Exemple.aspx explique tout.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 avril 2005 12:01:05 :
Ajout d'une surcharge à la méthode Render de manière à pouvoir afficher les histogrammes dans un winForm.

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CLASS CHARTS, HISTOGRAMCHART ET SECTORCHART par The Red Man
EXTRACTION D'INFORMATIONS IPTC D'UNE IMAGE par teenage
Source avec Zip Source avec une capture Source .NET (Dotnet) MANIPULATION D'IMAGES EN TEMPS RÉEL - RÉDUCTION COMPRESSION ... par badrbadr
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION D’AJAX ET D’UN WEBSERVICE POUR LA GÉNÉRATION D’I... par tikrimi
REDIMENSIONNER UNE IMAGE - ASPIMAGE par Keneyda

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) CLASS CHARTS, HISTOGRAMCHART ET SECTORCHART par The Red Man
Source avec une capture ASP/VML, TRACER UN HISTOGRAMME À PARTIR D'UNE BD SQL SERVER ... par rahou
DESCRIPTION DE LIEN par BlackWizzard
UN EXEMPLE DE CHART AVEC MSGRAPH par gvient

Commentaires et avis

Commentaire de tmcuh le 09/03/2005 12:37:23

très propre le graphisme, bravo,bonne prog
10

Commentaire de TUHABITES le 10/03/2005 09:10:22

Merci beaucoup tmcuh.

Commentaire de hbgz74 le 11/04/2005 18:28:51

peux tu mettre le code de l'exemple en VB stp
je débute encore en C#

Merci d'avance

Commentaire de jujubaud le 14/04/2005 10:18:40

ton code est tres interessant pourrai tu le comenter d'avantage je sais que c'est pénible mais cela m'aiderai à le comprendre
Pourrai tu par exemple présisé l'utilité des différente varianble de ta classe histogramme.

Je te remercie par avance

Commentaire de TUHABITES le 14/04/2005 20:02:04

hbgz74, voilà une transcription du code en VB, je ne garantis pas qu'il va fonctionner étant donné mes maigres connaissances dans ce langage.

jujubaud, le code qui est dans le zip est commenté (pas beaucoup mais un peu quand même) et la page Exemple.aspx présente l'ensemble des propriétés sur lesquelles on peut aisément agir.
Pour ce qui est des variables passées dans le constructeur: le premier argument est un DataTable contenant l'ensemble des données chiffrées (entiers ou decimaux) et le deuxieme argument correspond au graduations que l'on souhaite voir sur l'axe des ordonnées.

<%@ Page Language="VB" %>
<%@ import Namespace="ThCharts" %>
<%@ import Namespace="System.Data" %>
<script runat="server">
    
   Sub Page_Load(sender As Object, e As EventArgs)

          
             Dim graduation(5) As Single={250f,500f,750f,1000.0f}
             Dim ds As DataSet
     ds=New DataSet()
             ds.ReadXml("data.xml")
             Dim hist As Histogram
     hist=New Histogram(ds.Tables[0],graduation)
                hist.Render(this.Context)
   End Sub

</script>


J'espère que celà vous aidera.

Commentaire de jujubaud le 15/04/2005 10:24:03

peut on faire la meme chose en winform??

Commentaire de TUHABITES le 16/04/2005 11:23:12

On ne peut pas, sans transformation, utiliser la dll dans un winform il faudra pour cela faire les manipulations suivantes.

1- Dans le fichier histogram.cs (dans les sources du Zip) :
- ajouter la ligne: using System.IO;
- ajouter la surcharge suivante:
public Stream Render()
{
Stream stream=new MemoryStream();
System.Drawing.Image img;
Initialisation(tabl.GetLength(0));
  y=h+y;

img=Building(tabl,graduation,intitule);
if (err) img=Erreur();
Quality();
img.Save(stream,ici,eps);
return stream;
}
2- compiler.

3- Créer un Form comme suit en ajoutant bien ThCharts parmis les références.

using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Data;
using ThCharts;

public class MainForm : System.Windows.Forms.Form
{
public MainForm()
{

InitializeComponent();


}

[STAThread]
public static void Main(string[] args)
{
Application.Run(new MainForm());
}

#region Windows Forms Designer generated code

private void InitializeComponent() {
//
// MainForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(608, 502);
this.Name = "MainForm";
this.Text = "MainForm";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.MainFormPaint);
}
#endregion
void MainFormPaint(object sender, System.Windows.Forms.PaintEventArgs e)
{
float[] graduation={2.5f,5.0f,7.5f,10.0f};
DataSet ds=new DataSet();
ds.ReadXml("data1.xml");

Histogram hist=new Histogram(ds.Tables[0],graduation);
hist.width=400;
hist.height=500;
hist.unit="Kg";
string[] intitule={"Banane","Orange","Citron","Fraise"};
hist.titlesSeries=intitule;

Image image=Image.FromStream(hist.Render());
Graphics g=e.Graphics;
g.DrawImage(image,10,10);


}

}
4- compiler et executer. (penser à placer le fichier data1.xml dans le même répertoire.)

5- ça devrait marcher.



Commentaire de TUHABITES le 16/04/2005 12:06:49

L'explication ci-dessus m'a semblé peu claire donc j'ai modifié le source du zip de manière à ce qu'elle soit utilisable dans un winform.
(Bien que cela n'ai pas trop de rapport avec l'ASP)

Commentaire de jujubaud le 18/04/2005 10:04:40

merci pour ce complément je vais tester
c'est sympas d'avoir pris le temp
Merci encore

Commentaire de soficplus le 18/04/2005 17:23:53

Génial, génial génial, félicitations !!! Bon maintenant faut que j'fasse des camemberts hihih
c'est trés beau le résultat, moi qui pensait générer des histogrammes en deux coups de cuillères à pot !!!

Commentaire de elibou le 01/06/2005 21:56:34

Excellent composant, trés facile d'utilisation et effet de Tonnerre.
Félicitations

Commentaire de aurelien2003 le 08/06/2005 12:17:08

c'est sans contexte une excelente source qui merite d'etre encouragé. Merci beaucoup !

Commentaire de leroitony le 13/11/2005 00:50:49

Salut je te remercie pour ta source très bien faite.

Je me permets de te demander après quelque test une petite info

Quand je charge  Histogram hist=new Histogram(dt,graduation); ou dt est un DataTable qui contient une liste de nombre (via requête)

Le résultat est un graph. vue de profile

Qu’elle est la variable pour avoirs une vue de face comme lors de l'utilisation des fichier xml

Commentaire de leroitony le 13/11/2005 22:05:47

Désole pour le dérangement j'ai trouver l'erreur qui résidais dans mon datatable

Et encore bravo pour le code

Commentaire de Loneloup le 15/12/2005 14:36:36

Sublime, 3 petites questions :
Sachant que je programme en Vb.net et que les données proviennent d'un Datatable :
- Comment ajouter le titre des colonnes comme dans le screenshoot "le commercial","ses homologues")?
- j'utilise
        hist = New ThCharts.Histogram(Dtable, graduation)
        hist.Render(HttpContext.Current)
Le graphique efface completement les autres données de la page. comment y remédier et le placer à l'endroit voulu?
- Est il possible de modifier les couleurs sans modifier la dll thcharts?

Commentaire de Loneloup le 15/12/2005 15:44:14

Trouvé pour le titre et la couleur.
Mais toujours pas pour l'affichage : j'ai remarqué que tu avais une methode save, fonctionne t elle, si oui comment?
hist.Save(Server.MapPath("\Image\Statannee.jpg"))
me renvois toujours false

Commentaire de Loneloup le 15/12/2005 16:56:11

Ok j ai trouve un moyen dérivé qui ne me satisfait pas entirement à cause de l'optimisation du code mais voila la soluce pour ceux qui pourrait avoir le meme problème:

1°) Dans la page ou doit s afficher le graphique (index.aspx), insérer une balise de cette maniere : <IMG src="DynImageAnnee.aspx"> (DynImageAnnee.aspx étant dans le même répertoire que votre page principale)

2°) Coder la page DynImageAnnee.aspx avec le calcul du graphique das le formload

Exécuter, le tour est joué.

Merci encore pour ce fabuleux code

PS: marche comment la fonction save?
toujours pas reussi

Commentaire de Loneloup le 15/12/2005 17:00:59

Je me permet de completer aussi le code en VB, vous gagnerez une bonne demi journée de brainstorming :
Thcharts doit être ajouter en tant qu'objet com et pas assembly.net car il y a bug d access deny une fois de temps en temps.
        Dim graduation(5) As Single
        Dim hist As ThCharts.Histogram
        graduation(0) = 250.0F
        graduation(1) = 500.0F
        graduation(2) = 750.0F
        graduation(3) = 1000.0F

        hist = New ThCharts.Histogram(Dtable, graduation)

        Dim Couleur(3) As Color
        Couleur(0) = Color.Orange
        Couleur(1) = Color.Yellow
        Couleur(2) = Color.MediumBlue
        Couleur(3) = Color.MediumSeaGreen

        Dim fontt As Font = New Font("Arial", 12)

        hist.colorSeries = Couleur
        hist.quality = 95
        hist.AddTitle("Résumé des accès", fontt, Color.Black)

        Dim Titre(3) As String
        Titre(0) = "Sites"
        Titre(1) = "Visites"
        Titre(2) = "Pages"
        Titre(3) = "Hits"
        hist.titlesSeries = Titre
        hist.titlesSeriesX = 250
        hist.titlesSeriesY = 80
        hist.Render(System.Web.HttpContext.Current)

Comment fonctionne DTable :
    Dim Dtable As New DataTable("Annee")

Initialisationd es propriétés :
        Dtable.MinimumCapacity = 12
        Dtable.CaseSensitive = False
        Dtable.Columns.Add("Janvier", GetType(Integer))
        Dtable.Columns.Add("Février", GetType(Integer))
        Dtable.Columns.Add("Mars", GetType(Integer))
        Dtable.Columns.Add("Avril", GetType(Integer))
        Dtable.Columns.Add("Mai", GetType(Integer))
        Dtable.Columns.Add("Juin", GetType(Integer))
        Dtable.Columns.Add("Juillet", GetType(Integer))
        Dtable.Columns.Add("Août", GetType(Integer))
        Dtable.Columns.Add("Septembre", GetType(Integer))
        Dtable.Columns.Add("Octobre", GetType(Integer))
        Dtable.Columns.Add("Novembre", GetType(Integer))
        Dtable.Columns.Add("Décembre", GetType(Integer))

Ajout d'une ligne :
        Dim dr0 As DataRow = Dtable.NewRow
        dr0("Janvier") = TabSites(0)
        dr0("Février") = TabSites(1)
        dr0("Mars") = TabSites(2)
        dr0("Avril") = TabSites(3)
        dr0("Mai") = TabSites(4)
        dr0("Juin") = TabSites(5)
        dr0("Juillet") = TabSites(6)
        dr0("Août") = TabSites(7)
        dr0("Septembre") = TabSites(8)
        dr0("Octobre") = TabSites(9)
        dr0("Novembre") = TabSites(10)
        dr0("Décembre") = TabSites(11)
        Dtable.Rows.Add(dr0)

Commentaire de Loneloup le 15/12/2005 17:23:51

Une petite derniere astuce : Calcul automatique des paliers
On part du principe que TotHits sera toujours notre valeur la plus forte, la variable Palier permet de regler le degre de graduation (ex: pour un TotHits a 4000 le degre de graduation correct est 500) :
        Dim Palier As Integer = 500
        Dim Countgrad As Integer = 0
        Dim TempGrad As Integer = 0
        'Premiere boucle pour dimenssioner le tableau
        Do While TempGrad < tothits
            TempGrad = TempGrad + Palier
            Countgrad = Countgrad + 1
        Loop
        'Seconde boucle pour renseigner le tableau graduation
        Dim graduation(Countgrad + 2) As Single
        TempGrad = 0
        graduation(0) = Palier
        Countgrad = 0
        Do While TempGrad < TotHits
            Countgrad = Countgrad + 1
            TempGrad = TempGrad + Palier
            graduation(Countgrad) = TempGrad
        Loop

Commentaire de TUHABITES le 03/01/2006 15:56:25

Je te remercie LoneLoup pour le code en VB car d'aucuns m'ont demandé comment faire pour utiliser ThChart en VB et j'étais bien incapable de leur répondre.
Pour ce qui de la fonction Save, je l'avais complètement oubliée. En fait, ce code est une petite partie d'un autre code, c'est pourquoi le code n'est pas très propre et c'est aussi pourquoi il reste cette fonction Save qui apparemment ne fonctionne pas correctement. Si tu penses qu’elle peut être utile je peux me pencher sur le sujet et la rendre fonctionnelle. Je peux également ajouter d’autres fonctionnalités (si tu as des idées intéressantes).
                       Tuhabites

Commentaire de Loneloup le 03/01/2006 16:20:56

Salut,
Cela me permettrai de ne pas avoir à créer 1 page spécifique pour le graphique. Merci

Commentaire de TUHABITES le 10/01/2006 22:37:20

Salut,
je viens de tester "Save" et cela fonctionne. Voici le code utilisé:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ import Namespace="ThCharts" %>
<%@ import Namespace="System.Data" %>
<script runat="server">

    private void Page_Load(object sender, System.EventArgs e)
        {
    
           float[] graduation={250f,500f,750f,1000.0f};
                DataSet ds=new DataSet();
                ds.ReadXml(Server.MapPath("data1.xml"));
    
                Histogram hist=new Histogram(ds.Tables[0],graduation);
                if (!hist.Save(Server.MapPath("img.jpg"))) Label1.Text = "Y a un problème";
                
    
    }

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
    </form>
</body>
</html>

Commentaire de The Red Man le 25/05/2008 19:32:34

Trop fort le graphique ! Meme sur photoshop jamais j'y arriverai faire ce que tu as fait !
Respect !

Commentaire de nicsoFR le 29/01/2009 17:09:23

super beau j en ai saigné du nez !!!!!!!!!!!!!! xD

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Couleur : Barre de defillement verticale [ par Lio ] Salut !Comment fait-on pour customiser la barre de defillement verticale d'une autre couleur que celle par défaut ?Merci pour celui qui ammera une rép Graphique [ par Eric ] Je cherche a faire des graphiques (Camembert, histogramme...)Une solution est proposée sur le site, mais elle nefonctionne pasMerci recherche barre de progression durant l'upload [ par berserk ] salu à tousje souhaiterai savoir comment afficher une barre de progression de téléchargement pendant l'opération d'upload.(pratique pour les gros fich URGENT :envoi de données via le port série [ par zedyo ] je cherche à envoyer sur le port série de mon pc la valeur "04" en hexa. Le problème est que le pc envoi 0 puis 4. Les instructions MsComm1.Output = h cacher barre d'outil [ par jmg ] bonjour,connaitreriez vous le javascript pour pour cacher la barre d'outil de l'exploreur@+jm Recherche d'une barre de progression durant l'upload [ par nicool ] Bonjour, J'ai mis en place un système d'upload en asp mais je n'ai aucune idée du temps d'upload.Est-ce que quelqu'un aurait un moyen soit graphique s recuperation de graphique gograph [ par hippycore ] voila jutilise gograph pour faire des graphiques dans des formulaires d'une base access!!Et je voudrais savoir si il ya un moyen de recuperer ce graph Représentation graphique en arbre [ par webmaster91 ] Comment créer une représentation graphique en arbre en reprenant des éléments d'une base de donnéeMerciWebm@ster91 Graphique à la volée [ par lexxx ] Voilà j'ai consulté le script de Nix mais je ne sais pas comment insérer les imports qui doivent être devant le public class?Si quelqu'un peut me rens asp+graphique [ par rodman ] Comment génére t-on un graphique sous ASP à partir d'une base SQL?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales