Ich habe ein Säulendiagramm mit mehreren Reihen, die jeweils mehrere Punkte enthalten. Momentan berühren sich die Spalten. Ich möchte eine Lücke zwischen jeder Spalte erzwingen. Wie kann ich das erreichen?Erzwinge eine Lücke zwischen Punkten auf der x-Achse (MS .Net-Diagrammsteuerelemente, Säulendiagramm)
Ich fand, dass die Anwendung einer PointWidth (Chart1.Series[seriesName]["PointWidth"] = (0.6).ToString();
) gibt mir eine Trennung zwischen den X-Wert Gruppen, aber nicht zwischen jedem Serienpunkt in einer einzelnen Gruppe (die ich brauche). Die Verwendung einer leeren Abstandshalterserie wie suggested elsewhere löst das Problem nicht.
Ich bin mit .Net 4, VS 2010 Web Application. Mein Diagrammcode folgt:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
namespace WebApplication1
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
Chart1.ChartAreas.Add("Default");
Chart1.ChartAreas["Default"].BackColor = Color.White;
Chart1.ChartAreas["Default"].BackSecondaryColor = Color.AliceBlue;
Chart1.ChartAreas["Default"].BackGradientStyle = GradientStyle.TopBottom;
Chart1.BackColor = Color.AliceBlue;
Chart1.BackSecondaryColor = Color.White;
Chart1.BackGradientStyle = GradientStyle.TopBottom;
Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
var colors = new List<Color>(GetSystemColors().Where(c=>c.Name.StartsWith("Dark")));
var rng = new Random();
var start = rng.Next(0, colors.Count - 1);
for (var c = start; c < start + 6; c++)
{
var color = colors[c % colors.Count];
Chart1.Series.Add(color.Name);
Chart1.Series[color.Name].BorderColor = color;
Chart1.Series[color.Name].BorderWidth = 1;
Chart1.Series[color.Name].Color = Color.FromArgb((int)(255 * .7), color);
Chart1.Series[color.Name].BackSecondaryColor = Color.White;
Chart1.Series[color.Name].BackGradientStyle = GradientStyle.TopBottom;
for (var year = DateTime.Now.AddYears(-5).Year; year < DateTime.Now.Year; year++)
Chart1.Series[color.Name].Points.Add(new DataPoint(year, rng.Next(0, 20)));
Chart1.Series[color.Name]["PointWidth"] = (0.6).ToString();
//Chart1.Series.Add("Spacer:" + color.Name);
//Chart1.Series["Spacer:" + color.Name]["PointWidth"] = (0.6).ToString();
}
Chart1.Legends.Add("Default");
}
static IEnumerable<Color> GetSystemColors()
{
Type type = typeof(Color);
return type.GetProperties().Where(info => info.PropertyType == type).Select(info => (Color)info.GetValue(null, null));
}
}
}
völlig unabhängig von Ihrer Anfrage einstellen, aber wie zum Teufel tun Sie um die Ecken auf dem Graphen? – spaceman
Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss; – grenade