Est-il possible de dessiner des graphiques (courbes, histogramme, cercle) en utilisant C # via ASP.NET MVC 4 (Razor). J'essaie de créer des graphiques à partir de données extraites de ma base de données. Mais je ne trouve pas comment.
Des suggestions, s'il vous plaît?
Merci beaucoup !
Il y a un Assistant graphique , qui fonctionne assez bien avec Razor et vous permet de créer des graphiques, des histogrammes et d'autres représentations graphiques de vos données assez facilement.
Ou vous pouvez essayer d'utiliser une bibliothèque jQuery/HTML5/Javascript:
Highcharts est une bibliothèque de graphiques écrite en pur HTML5/JavaScript, offrant des graphiques intuitifs et interactifs à votre site Web ou à votre application Web.
jqPlot est un plugin de traçage et de cartographie pour le framework Javascript jQuery.
Raphaël est une petite bibliothèque JavaScript qui devrait simplifier votre travail avec des graphiques vectoriels sur le web.
Il y en a plus, ceux ci-dessus ne sont que quelques exemples;
Lorsque vous souhaitez afficher vos données sous forme graphique, vous pouvez utiliser l'aide graphique. L'assistant Graphique peut rendre une image qui affiche des données dans divers types de graphiques.
Vous pouvez créer une vue ayant un code de rasoir pour le graphique comme suit (disons son MyChart.cshtml).
Graphique à barres d'Array avec thème
@{
var myChart = new Chart(width: 600, height: 400, theme: ChartTheme.Green)
.AddTitle("Chart Title")
.AddSeries(
name: "ChartTitle",
xValue: new[] { "Col1", "Col2", "Col3", "Col4", "Col5" },
yValues: new[] { "2", "6", "4", "5", "3" })
.Write();
}
Graphique circulaire de Array
@{
var myChart = new Chart(width: 600, height: 400, theme: ChartTheme.Green)
.AddTitle("Chart Title")
.AddSeries(
name: "ChartTitle",
chartType: "Pie",
xValue: new[] { "Col1", "Col2", "Col3", "Col4", "Col5" },
yValues: new[] { "2", "6", "4", "5", "3" })
.Write();
}
Graphique circulaire de Array avec thème
@{
var myChart = new Chart(width: 600, height: 400)
.AddTitle("Chart Title")
.AddSeries(
name: "ChartTitle",
chartType: "Pie",
xValue: new[] { "Col1", "Col2", "Col3", "Col4", "Col5" },
yValues: new[] { "2", "6", "4", "5", "3" })
.Write();
}
Graphique à barres à l'aide d'une requête DB
@{
var db = Database.Open("DBName");
var data = db.Query("SELECT Col1, Col2 FROM Table");
var myChart = new Chart(width: 600, height: 400)
.AddTitle("Chart Title")
.DataBindTable(dataSource: data, xField: "Col1")
.Write();
}
Vous pouvez utiliser ces vues de graphique/PartialView lorsque cela est nécessaire en tant que src d'image.
ex.
<html>
<body>
<img src="MyChart.cshtml" />
<!-- or <img src='@Url.Action("Controler","ActionNameOfChartRenderingView")' />-->
<body>
<html>
Graphique Theams
Vanille Affiche des colonnes rouges sur fond blanc.
Ble Affiche les colonnes bleues sur un fond dégradé bleu.
Vert Affiche les colonnes bleues sur un fond dégradé vert.
Jaune Affiche les colonnes orange sur un fond dégradé jaune.
Vanilla3D Affiche les colonnes rouges 3D sur un fond blanc.
L'énumération SeriesChartType prend en charge les éléments suivants:
Il s'agit de la liste des noms que vous pouvez passer, sous forme de chaînes, à l'assistant Graphique dans une page Razor.
C'est Helper
namespace System.Web.Helpers
{
public class Chart
{
public Chart(int width, int height, string template = null, string templatePath = null);
public string FileName { get; }
public int Height { get; }
public int Width { get; }
public Chart AddLegend(string title = null, string name = null);
public Chart AddSeries(string name = null, string chartType = "Column", string chartArea = null, string axisLabel = null, string legend = null, int markerStep = 1, IEnumerable xValue = null, string xField = null, IEnumerable yValues = null, string yFields = null);
public Chart AddTitle(string text = null, string name = null);
public Chart DataBindCrossTable(IEnumerable dataSource, string groupByField, string xField, string yFields, string otherFields = null, string pointSortOrder = "Ascending");
public Chart DataBindTable(IEnumerable dataSource, string xField = null);
public byte[] GetBytes(string format = "jpeg");
public static Chart GetFromCache(string key);
public Chart Save(string path, string format = "jpeg");
public string SaveToCache(string key = null, int minutesToCache = 20, bool slidingExpiration = true);
public Chart SaveXml(string path);
public Chart SetXAxis(string title = "", double min = 0, double max = 0.0 / 0.0);
public Chart SetYAxis(string title = "", double min = 0, double max = 0.0 / 0.0);
public WebImage ToWebImage(string format = "jpeg");
public Chart Write(string format = "jpeg");
public static Chart WriteFromCache(string key, string format = "jpeg");
}
}
J'espère que ceci vous aidera.
Vous pouvez essayer des amcharts avec javascript. C'est tellement utile ..