Profile Picture

How to properly set font for x and y axis

Posted By Devin Ellis 3 Years Ago
Author
Message
Devin Ellis
Posted 3 Years Ago
View Quick Profile
Forum Newbie

Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 9, Visits: 62
I have two methods used on my charts for setting the fonts
Most of the charts use SetupChartAxes and some use 
SetXAxisLabels (sorry but you have no code insert 
and when I pasted the code formatting was remove). The SetXAxisLabels is set to bold and the chart below uses that
but the labels do not come out bold. Why is that?


Images

https://www.nevron.com/forum/uploads/images/ac25ea03-b296-41eb-93c5-4582.png






Code


Snippetpublic virtual void SetupChartAxes ( NChart chart Wink{    if ( chart == null Wink        throw new ArgumentNullException ( "chart required" Wink;     var scaleY = new NLinearScaleConfigurator ();    if ( scaleY == null Wink        throw new NullReferenceException ( "Failed to create y axis" Wink;     scaleY.MajorGridStyle.LineStyle.Pattern = LinePattern.Dash;    scaleY.MajorGridStyle.ShowAtWalls = new ChartWallType [] { ChartWallType.Back };    scaleY.InnerMajorTickStyle.Visible = false;     scaleY.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;    scaleY.LabelStyle.TextStyle.FontStyle.EmSize = new NLength ( DefaultFontSize, NGraphicsUnit.Point Wink;    scaleY.LabelStyle.TextStyle.FontStyle.Name = DefaultFontName;     chart.Axis ( StandardAxis.PrimaryY Wink.ScaleConfigurator = scaleY;     var scaleX = new NLinearScaleConfigurator ();    if ( scaleX == null Wink        throw new NullReferenceException ( "Failed to create x axis" Wink;     scaleX.MajorGridStyle.LineStyle.Pattern = LinePattern.Dash;    scaleX.MajorGridStyle.ShowAtWalls = new ChartWallType [] { ChartWallType.Back };    scaleX.InnerMajorTickStyle.Visible = false;     scaleX.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;    scaleX.LabelStyle.TextStyle.FontStyle.EmSize = new NLength ( DefaultFontSize, NGraphicsUnit.Point Wink;    scaleX.LabelStyle.TextStyle.FontStyle.Name = DefaultFontName;     chart.Axis ( StandardAxis.PrimaryX Wink.ScaleConfigurator = scaleX;} public virtual void SetXAxisLabels ( NChart chart Wink{    if ( chart == null Wink        throw new ArgumentNullException ( "chart required" Wink;     // add scale to chart    // hide axis ruler, ticks and automatic labels    var scaleX = new NDateTimeScaleConfigurator ();    if ( scaleX == null Wink        throw new NullReferenceException ( "Failed to create x axis" Wink;     chart.Axis ( StandardAxis.PrimaryX Wink.ScaleConfigurator = scaleX;     scaleX.AutoLabels = false;    scaleX.UseOrigin = false;     scaleX.RulerStyle.BorderStyle.Width = new NLength ( 1 Wink;    scaleX.OuterMajorTickStyle.Length = new NLength ( 5 Wink;    scaleX.InnerMajorTickStyle.Length = new NLength ( 0 Wink;     scaleX.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;    scaleX.LabelStyle.TextStyle.FontStyle.EmSize = new NLength ( DefaultFontSize, NGraphicsUnit.Point Wink;    scaleX.LabelStyle.TextStyle.FontStyle.Name = DefaultFontName; }




Nevron Support
Posted 3 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)

Group: Forum Members
Last Active: 1 hour ago
Posts: 2,945, Visits: 3,306
Hi Devin,
Please post the code with proper formatting its hard to tell what the problem is this way...

Best Regards,
Nevron Support Team



Devin Ellis
Posted 3 Years Ago
View Quick Profile
Forum Newbie

Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 9, Visits: 62
I had this in my original message:

(sorry but you have no code insert 
and when I pasted the code formatting was remove).

So I guess we just hit the cancel button to not format.
I thought the cancel would cancel the insert.

Snippet
public virtual void SetupChartAxes ( NChart chart Wink{    if ( chart == null Wink        throw new ArgumentNullException ( "chart required" Wink;      var scaleY = new NLinearScaleConfigurator ();    if ( scaleY == null Wink        throw new NullReferenceException ( "Failed to create y axis" Wink;     scaleY.MajorGridStyle.LineStyle.Pattern = LinePattern.Dash;    scaleY.MajorGridStyle.ShowAtWalls = new ChartWallType [] { ChartWallType.Back };    scaleY.InnerMajorTickStyle.Visible = false;     scaleY.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;    scaleY.LabelStyle.TextStyle.FontStyle.EmSize = new NLength ( DefaultFontSize, NGraphicsUnit.Point Wink;    scaleY.LabelStyle.TextStyle.FontStyle.Name = DefaultFontName;     chart.Axis ( StandardAxis.PrimaryY Wink.ScaleConfigurator = scaleY;      var scaleX = new NLinearScaleConfigurator ();    if ( scaleX == null Wink        throw new NullReferenceException ( "Failed to create x axis" Wink;      scaleX.MajorGridStyle.LineStyle.Pattern = LinePattern.Dash;    scaleX.MajorGridStyle.ShowAtWalls = new ChartWallType [] { ChartWallType.Back };    scaleX.InnerMajorTickStyle.Visible = false;     scaleX.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;    scaleX.LabelStyle.TextStyle.FontStyle.EmSize = new NLength ( DefaultFontSize, NGraphicsUnit.Point Wink;    scaleX.LabelStyle.TextStyle.FontStyle.Name = DefaultFontName;      chart.Axis ( StandardAxis.PrimaryX Wink.ScaleConfigurator = scaleX;}  public virtual void SetXAxisLabels ( NChart chart Wink{    if ( chart == null Wink        throw new ArgumentNullException ( "chart required" Wink;      // add scale to chart    // hide axis ruler, ticks and automatic labels    var scaleX = new NDateTimeScaleConfigurator ();    if ( scaleX == null Wink        throw new NullReferenceException ( "Failed to create x axis" Wink;     chart.Axis ( StandardAxis.PrimaryX Wink.ScaleConfigurator = scaleX;     scaleX.AutoLabels = false;    scaleX.UseOrigin = false;     scaleX.RulerStyle.BorderStyle.Width = new NLength ( 1 Wink;    scaleX.OuterMajorTickStyle.Length = new NLength ( 5 Wink;    scaleX.InnerMajorTickStyle.Length = new NLength ( 0 Wink;     scaleX.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;    scaleX.LabelStyle.TextStyle.FontStyle.EmSize = new NLength ( DefaultFontSize, NGraphicsUnit.Point Wink;    scaleX.LabelStyle.TextStyle.FontStyle.Name = DefaultFontName; }
With the Cancel its just one line. Can you add a code insert to the "+ Insert".

Devin Ellis
Posted 3 Years Ago
View Quick Profile
Forum Newbie

Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)Forum Newbie (4 reputation)

Group: Forum Members
Last Active: Last Year
Posts: 9, Visits: 62
I have verified that the font style is not changed after the series are added to the chart but just on one chart I have different styles on the x axis:

https://www.nevron.com/forum/uploads/images/6ecf4f26-9275-4d2a-afaa-591e.png



https://www.nevron.com/forum/uploads/images/f644d373-2d75-4655-97db-f491.png



Nevron Support
Posted 3 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)

Group: Forum Members
Last Active: 1 hour ago
Posts: 2,945, Visits: 3,306
Hi Devin.

The code that modifies the font style to bold looks ok however there may be other code that overrides the settings you have for the x axis as we tested with:

private void Form1_Load(object sender, EventArgs e)
{
NChart chart = nChartControl1.Charts[0];
chart.BoundsMode = BoundsMode.Stretch;
chart.Margins = new NMarginsL(10);
chart.DockMode = PanelDockMode.Top;
chart.Size = new NSizeL(new NLength(100, NRelativeUnit.ParentPercentage), new NLength(50, NRelativeUnit.ParentPercentage));
NBarSeries bar1 = new NBarSeries();
bar1.Values.Add(10);
bar1.Values.Add(20);
bar1.Values.Add(30);
chart.Series.Add(bar1);

SetupChartAxes(chart);


}

public virtual void SetupChartAxes(NChart chart)
{
if (chart == null)
throw new ArgumentNullException("chart required");
var scaleY = new NLinearScaleConfigurator();
if (scaleY == null)
throw new NullReferenceException("Failed to create y axis");
scaleY.MajorGridStyle.LineStyle.Pattern = LinePattern.Dash;
scaleY.MajorGridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back };
scaleY.InnerMajorTickStyle.Visible = false;
scaleY.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;
chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator = scaleY;

var scaleX = new NLinearScaleConfigurator();
if (scaleX == null)
throw new NullReferenceException("Failed to create x axis");
scaleX.MajorGridStyle.LineStyle.Pattern = LinePattern.Dash;
scaleX.MajorGridStyle.ShowAtWalls = new ChartWallType[] { ChartWallType.Back };
scaleX.InnerMajorTickStyle.Visible = false;
scaleX.LabelStyle.TextStyle.FontStyle.Style = FontStyle.Bold;
chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = scaleX;
}
and the formatting was OK. Can you post a complete example which replicates the whole chart? (when posting you can first copy the code to notepad to remove any formatting and then copy the code from there).



Best Regards,
Nevron Support Team



Nevron Support
Posted 3 Years Ago
View Quick Profile
Supreme Being

Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)Supreme Being (4,063 reputation)

Group: Forum Members
Last Active: 1 hour ago
Posts: 2,945, Visits: 3,306
Hi Devin,
Please post sensitive code to support@nevron.com. We are not able to see what the problem is (as the code does not compile and does not replicate the problem). Our guess is that the chart uses staggering + auto scaling for the x axis to resolve label overlap which occurs on the x axis - you can check if this is the case if you disable label overlap resolve using:

NOrdinalScaleConfigurator scaleX = chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator as NOrdinalScaleConfigurator;
scaleX.LabelFitModes = new LabelFitMode[0];

Hope this helps - let us know if the problem persists.




Best Regards,
Nevron Support Team





Similar Topics


Reading This Topic