Page 1 of 2

bar series missing labels

Posted: Fri Mar 06, 2009 5:26 am
by 14045174
I just have uploaded an image showing a bar series with labels and on the bottom axes only every other label is shown. Why? And the most funniest thing - if I re-size the graph, the labels will show up, then hide again without any rhyme or reason. At first, I've thought the graph was not wide enough, but as you can see in my example, there is plenty of room and yet - not all the labels are there! But if I make the graph a few pixels wider or narrower (!) - all the labels will be there! But then again, add/remove a few more pixels and they will disappear! (all I have done: created a TChart, added a bar series and added a few points with labels).

Posted: Fri Mar 06, 2009 12:06 pm
by 10050769
Hi UserLS,

I could reproduce your problem and I have added to the list of Enhancement with number [TF02013936] we will try to fix it for next versions of TeeChart .NET.

But, for the moment I propose one solution for your issue:

Solution:

Code: Select all

        private void InitializeChart()
        {
            Steema.TeeChart.Styles.Bar bar1 = new Steema.TeeChart.Styles.Bar(tChart1.Chart);
            bar1.Add(23, "a");
            bar1.Add(25, "b");
            bar1.Add(32, "c");
            bar1.Add(42, "d");
            bar1.Add(33, "e");
            bar1.Add(35, "f");
            bar1.Add(42, "g");
            tChart1.Axes.Bottom.Labels.Items.Clear();

            for (int i = 0; i < bar1.Count; i++)
            {
                tChart1.Axes.Bottom.Labels.Items.Add(bar1.XValues[i], bar1.Labels[i]);
            }
        }
Thanks,

Posted: Mon Mar 09, 2009 1:08 pm
by 14045174
Hi, Sandra!

The work around, you've suggested, has more problems than it tries to solve. First, what should I do, if I happen to have more, than 1 series? Not all of them having the same points? Displaying Dates on the bottom axis? Well, all these questions aside, if I do, what you suggested, and the user decides to re-size the chart again, now the labels will not disappear, when there is not enough room for all of them to be displayed. So, this is not going to work at all (unless I tell users to stop re-sizing all their graphs). :oops:

Posted: Mon Mar 09, 2009 1:52 pm
by narcis
Hi UserLS,

You can use Sandra's suggestion in TChart's AfterDraw event so that labels are automatically updated every time. Also, you can make a loop for all series in the chart or even have an array with all X values available. For other options I recommend you to read the thread below. Most options available where discussed there. Notice that it has several pages and what you are looking for may not appear until last pages.

http://www.teechart.net/support/viewtopic.php?t=2989

Thanks in advance.

Posted: Wed Mar 11, 2009 5:03 am
by 14045174
Ok, I did get it to semi-work, if I hook a BeforeDrawAxes event. With some work, I've got it working for the simplest case. Which is better than nothing... But if users will try to rotate labels, set label separation values and so on - my work around will fail miserably. Also, if they will decide to use logarithmic axis - nothing I've tried, made it at least close to what I expect (and the Win32 version did). So, I am back to my original state - it is not working and we really need it to work (as well as many other things we've reported so far). I know, you added it to your list, but what does it really mean? I have more than a dozen of those numbers, but they do not give me any idea, when these issues will be resolved. And, unfortunately, this list is growing...

Posted: Wed Mar 11, 2009 8:13 am
by narcis
Hi UserLS,

With every maintenance release, every 6 weeks approximately, we try to fix a number of issues according to the priority we think they deserve. All releases are announced at this forum with a link to the release notes (see URL below) which contains ID and description of the issues fixed on every issue.

http://www.steema.com/files/public/teec ... elease.txt

Having said that my recommendation is that you stay aware at this forum or subscribe to our RSS news feed for such announcements.

Posted: Wed Mar 11, 2009 1:25 pm
by 14045174
I know all of this... What I have no clue about is - what is the priority order you are working on. I'd like to know early, if an issue, which is a show stopper for us is going to be fixed soon, or you think it is not worth looking into... For example, the one, which has started this thread, as far as I can tell, is known for you guys since at least 2007 and yet, it is still not fixed... What is frustrating - with this number of major issues you have, instead of fixing them, you are working on the new features... For example, last release did not address any of my big problems (the tag property, added to some classes, is useless until it is serialized, so consider it is not there at all!). So, my real question is not if the issue IS on your list, the question is WHEN you are going to fix it. And I need to know it now. I cannot just hope, that a future release (one of them, who knows which, and when, and if) will fix it. Because I need to make informed decisions on my side, what to fix, what to just not allow for my user to use (like, today, in this list are area series, chart editor). I need to know, if I will be able to use pieces of your editor in my app or not (the full version of it is out of questions - the way it is - the overall design and number of bugs - I would not dare let my users see it).

Posted: Wed Mar 11, 2009 3:35 pm
by narcis
Hi UserLS,

TF02013936 has been fixed for next maintenance release.

Posted: Wed Mar 11, 2009 3:50 pm
by 14045174
Thank you for the information. But I still need to know the status of all other issues I've reported. And "they are on the list" is not nearly enough. Because, for example, if I knew you were working on this issue as we speak, I would not spend 2 days trying to "work around the bug" - I have better things to do. My problem is, that I will choose again something you are going to fix soon and other problem, which you will not, will be left unaddressed till the last minute.

Posted: Wed Mar 11, 2009 4:01 pm
by narcis
Hi UserLS,

Can you please post a list of your outstanding bug IDs?

Thanks in advance.

Posted: Wed Mar 11, 2009 7:54 pm
by 14045174
Ok, here are the items I could think of (I might miss some, but I think this list is pretty close to what we need to be fixed):
  • TF02013936 - Labels on the bottom axis - presumably fixed in the next release. I expect it to work for any graph (not just bar graphs) and respect all the axis settings, including the logarithmic flag (currently badly broken).
  • TF02013715, TF02013851 - I am not sure, which of the problems with areas these are representing, but in general - area series are totally broken! And in 2 occasions here I had implemented a work around for a problem, which would stop working with the very next release. So, I fill like a cat, chasing its tail.
  • TF02013207 - Tag property for series (and other objects). It is useless until it is serialized.
  • TF02013794 - Mark arrow color is controlled by the Mark.Symbol.Shadow.Color. Should it???
  • TF02013790 - This is big one for us: generating a chart in memory and then including an emf build from it into a PDF report - quality of the image is poor.
  • TF02013756 - Round shape and shadow - this time get them all, please!
  • TF02013748 - This one, I believe, is about patterns editor and image page inside it - very broken!
  • TF02013713 - Series.Assign (chart is in-memory) throws exceptions.
  • TF02013851 - Chart series editor for bars.
  • TF02013698 - serializing horizontal bar series - resets gradient direction.
  • TF02013693 - creating metafiles from a chart, kept in memory, produces very poor quality and plain and simple is wrong (try pie chart!)
  • TF02013689 - serializing pie charts - missing explode values.
  • TF02013684 - serializing horizontal bar series - missing marks.visible.
  • TF02013685 - horizontal series -> marks-> X and Y values do not work.
  • TF02013429 - Chart gallery buttons.
  • TF02013536 - Series Marks: Do not even try to rotate them! Symbols (if shown) are staying put anyway. The text is rotating with the shape, but not together - they are separated and text is drawn outside of the frame. Shadow is lost and so is the round frame. Bevels also do not rotate.
  • TF02013533 - Line Series: If I touch outline property (make it visible and then turn it off later) border stops working and by playing with this property more, I was able to make the whole line series disappear from the chart - even though it was still shown in the legend and had values.
  • TF02013758 - Images on brushes for series and walls have multiple problems.
There are more problems, which did not get a tracking number, but are as important for us anyway:
  • marks, overlapping. It makes it very hard to use marks, if you happen to have more than just a few points. At least for one given series marks should be smart enough to not overlap each other and graph should adjust accordingly. And all this logic should not live in the drawing events, since graphs are sometimes created on the background and are never actually drawn on a canvas - it still should work.
  • captions on various pop-up editors - make them understandable for the general public, not only for the select people who happen to be programmers.
  • color dialogs. Here 2 issues: first, make them standard with the OS-generated color dialog. Second, need a way to communicate back and forth about user-defined custom colors.
  • all pop-up dialogs - they do not need to add a separate taskbar icon. Also, if they display an icon - it should be my app's icon or none!
  • pattern editor. Starting with the misleading name on the buttons, which bring the one (not to mention it's cryptic caption) - this guy has too many bags and needs to be cleaned up .
  • multi-line titles and vertical legends. Also, when legend is on your right or left titles and footers are mis-aligned (all options: right, left and center - pretend there is no legend).
  • for some reason the same font in Win32 and .NET look different and in .NET version is taking more space, breaking existing reports.
  • changing type of existing series. The specific settings of an old type are not cleared as well as any settings which do not apply for the new type (and should not matter, but sure enough, break it).
  • Bevels in Titles and Legend do not work. Editor resets bevel width on Panel and Marks just by flipping tabs.
  • need a way to hide pages on the chart series editor, so the general page and data page will not be there (our business rules are controlling all the settings there). The marks page either needs some serious work (4 lines of tabs is just not acceptable!) or I need a way to hide it as well.

Posted: Fri Mar 20, 2009 4:43 pm
by narcis
Hi UserLS,

Thank you for the list which we are using to help with focus. To date those issues are in for the next maintenance release:

TF02013936, TF02013941 (which is TF02013207's serialization issue), TF02013794 and TF02013758 (already in current release).

At the present moment I can't give you delivery dates for other modifications.

Posted: Thu Apr 02, 2009 12:27 am
by 14045174
You've reported TF02013936 as fixed. Well, we have different opinions on the meaning of the word "fixed" obviously, since it is not working anyway! First, labels are not hiding now... ever. They will run onto each other, which is as bad as unpredictable hiding, which you had before. Also, if I happen to have logarithmic bottom axis - the labels are set randomly (I cannot come up with any logical explanation on how). I tried to control them by setting up Increment property (which I expect to work) but the results were scary. So, let's say I have 320 consecutive points on my line graph. The bottom axis is logarithmic with base of 10. If Increment is 0 - the labels are 1, 10, and 100. Ok, if I change it to be 1 (or 0.1, or 0.01 - it treats them the same?!!) - the labels are 100, 200, 300. Increment of 2 gets only one label - 200, but 3 gets a bunch of labels - 30, 60, 90, 120 and so on (many of which are not readable, since at some point they begin to run onto each other and at the end of the axis I just have this black blob... Any logic behind this mess? All I need it to do - display as many labels, as it can, resolve properly the overlapping issues (by hiding the labels which do not fit) and treat Increment value as I set (so 1 is not equal to 0.1 or 0.0001, but rather is 1). The Win32 version was doing it right years ago!
By the way, when I was setting up my logarithmic axis, I did try to set a different base, did not like it, and wanted to switch back to ten. You know what happens, when people are typing 10? They first enter a "1" and your logarithmic logic goes crazy! I had to kill the process, lose all my work and start it all over (hope, my clients will not do the same). Same can be observed, if I accidentally enter a "0" as a base.

Posted: Thu Apr 02, 2009 8:25 am
by narcis
Hi UserLS,
You've reported TF02013936 as fixed. Well, we have different opinions on the meaning of the word "fixed" obviously, since it is not working anyway! First, labels are not hiding now... ever. They will run onto each other, which is as bad as unpredictable hiding, which you had before.


I'm not able to reproduce this now on how you originally reported the bug:

Code: Select all

		public Form1()
		{
			InitializeComponent();
			InitializeChart();
		}

		private void InitializeChart()
		{
			tChart1.Dock = DockStyle.Fill;

			Steema.TeeChart.Styles.Bar bar1 = new Steema.TeeChart.Styles.Bar(tChart1.Chart);

			Random y = new Random();

			bar1.Add(y.Next(), "a");
			bar1.Add(y.Next(), "b");
			bar1.Add(y.Next(), "c");
			bar1.Add(y.Next(), "d");
			bar1.Add(y.Next(), "e");
			bar1.Add(y.Next(), "f");
			bar1.Add(y.Next(), "g");
			bar1.Add(y.Next(), "h");
		}
Code above works fine for me here when resizing the chart. Can you please modify the code snippet I posted or send us a simple example project we can run "as-is" to reproduce the problem here?

You can either post your files at news://www.steema.net/steema.public.attachments newsgroup or at our upload page.
Also, if I happen to have logarithmic bottom axis - the labels are set randomly (I cannot come up with any logical explanation on how). I tried to control them by setting up Increment property (which I expect to work) but the results were scary. So, let's say I have 320 consecutive points on my line graph. The bottom axis is logarithmic with base of 10. If Increment is 0 - the labels are 1, 10, and 100. Ok, if I change it to be 1 (or 0.1, or 0.01 - it treats them the same?!!) - the labels are 100, 200, 300. Increment of 2 gets only one label - 200, but 3 gets a bunch of labels - 30, 60, 90, 120 and so on (many of which are not readable, since at some point they begin to run onto each other and at the end of the axis I just have this black blob... Any logic behind this mess?
I could reproduce this one using code snippet below and added it (TF02014049) to the bug list.

Code: Select all

		public Form1()
		{
			InitializeComponent();
			InitializeChart();
		}

		private void InitializeChart()
		{
			tChart1.Dock = DockStyle.Fill;
			tChart1.Legend.Visible = false;

			Steema.TeeChart.Styles.Line line1 = new Steema.TeeChart.Styles.Line(tChart1.Chart);

			Random y = new Random();

			for (int i = 0; i < 320; i++)
			{
				line1.Add(y.Next());
			}

			tChart1.Axes.Bottom.Logarithmic = true;
			tChart1.Axes.Bottom.LogarithmicBase = 10;
			tChart1.Axes.Bottom.Increment = 3;
		}
By the way, when I was setting up my logarithmic axis, I did try to set a different base, did not like it, and wanted to switch back to ten. You know what happens, when people are typing 10? They first enter a "1" and your logarithmic logic goes crazy! I had to kill the process, lose all my work and start it all over (hope, my clients will not do the same). Same can be observed, if I accidentally enter a "0" as a base.
I could also reproduce this and added the defect to the list (TF02014050) to be enhanced for next releases.

Posted: Thu Apr 02, 2009 12:54 pm
by 14045174
If you make your labels longer (like 5 - 10 characters) you'll see, that when you resize your chart small enough - they will overlap each other. With new release, they just simply never hide anymore (at least I could not make them hide) and I am just using your chart editor to modify my chart - so no "special" code is needed.