Aligning Multiple Charts in Flex Charting - apache-flex

I have multiple line charts in Flex Charting (3.x). The charts (and number of charts) are being dynamically generated, and are either of "type A" or "type B." The type of data on the Y-axis is different for type A then it is for type B. The x-axis is time.
Each chart is placed in its own VBox (with a few other things) that make up a larger canvas of the Type A or Type B. This VBox is given an absolute X position.
It is very high priority that the different charts line up, so that comparisons (in time) can be made.
What ends up happening is that the vertical axis for some charts takes up more width then others, so the charts are no longer aligned in time.
I have tried playing the VerticalAxisRenderers/AxisRenderer width, but that had no effect.
Any advice would be greatly appreciated.

You can try to set the same gutter left for the both charts. That might help. I had a similar issues, but haven't figured a better answer yet.

I am doing the same thing. If you can use the same HorizontalAxis using a DateTime axis it works great.. you just need to parse the data into an appropriate dateTime.
But, if like me, you need to chart the Time and a parsing the Time values into datetime then provides gaps in data... so far, I have not found an answer, because I am using a Horizontal Axis - Category Axis, but I will try switching that to a Numeric Axis and let you know what I come up with. if anything...

You need to make sure the component uses the same width, height, padding and gutter settings.
For the gutter, which solves what you described, you can find the right info and sample code here:
http://livedocs.adobe.com/flex/3/html/help.html?content=charts_formatting_03.html

Related

Plotly Multi Column Horizontal Legend

I am trying to create horizontal bar chart in in R using the plotly package. Due to the length of the legend items I would like for them to show horizontally at the top or bottom of the visual in 2 columns. Is it possible to dictate the number of columns for the legend?
I've been able to place the legend below the x axis successfully using Layout(legend = list(orientation='h')) however regardless of where I put the legend (using the x and y arguments) it is always just one long list. I've seen a github project for creating a multi column legend in js but not r.
Thanks,
This is not possible in a normal way. I think it has its own logic that determines how many place there it is and how many columns it will display then.
So I guess if you make your plot width smaller you could reach the goal that it will just display 2 column.
Also you can try to play around with the margin attribute (https://plot.ly/r/reference/#layout-margin) by setting r and l to 10 e.g.
An other idea could be to make the font-size in legend (https://plot.ly/r/reference/#layout-legend-font-size) bigger, so that it just uses two columns. Hope it helps.
I read the same github page and I thought that it is not possible, but seems to be! I only checked in Python, but I hope this will help in your endeavors in R as well as everyone in Python looking for information. Sadly, there is not a lot of information on Plotly here compared to other packages.
This solved my problem
Setting orientation='h' is not enough. You also have to put the legend items in different legendgroups, if you want them in different columns. Here is an example with legend labels:
fig = go.Figure([
go.Scatter(x=best_neurons_df['Test Size'],
y=best_neurons_df['Training Accuracy Max'],
# You can write anything as the group name, as long as it's different.
legendgroup="group2",
name='Training',
mode='markers',
go.Scatter(x=best_neurons_df['Test Size'],
y=best_neurons_df['Validation Accuracy Max'],
# You can write anything as the group name, as long as it's different.
legendgroup="group1",
layout=dict(title='Best Model Dependency on Validation Split',
xaxis=dict(title='Validation Set proportion'),
yaxis=dict(title='Accuracy'),
margin=dict(b=100, t=100, l=0, r=0),
legend=dict(x=1, y=1.01,xanchor='right', yanchor='bottom',
title='',
orientation='h', # Remember this as well.
bordercolor='black',
borderwidth=1
))
Example image

ggplot: Axis Text Label Width?

I'm currently struggling immensely to get the axis text in a graph that I'm designing to automatically format such that it cuts off when it becomes too long. I would ideally implement some sort of character cut off, but I'd ideally prefer to refrain from sticking '\n' after every 2 words. I've dug through the libraries for solutions, but couldn't find any.
It'd also be lovely if I could somehow prevent the graph from shifting upwards, as it makes it incredibly difficult to compare with the 'other' graph next to it.
I've largely been using ggplot and theme settings to make the changes.
Is it possible to make these changes? (1. width limit on axis text, 2. stop area expansion)

Spacing Between Multiple X-Axes in JFreeChart

I'm attempting to try and increase the vertical spacing between multiple x-axes using JFreeChart. Currently, my charts look like this:
Current chart
However, I need to produce something like the following so that the x-axes are more clearly defined (note that the vertical spacing between the x-axes is larger than in the first image):
Desired chart
Does any one have any idea on how to do this? I've been searching the JFreeChart API for > 2 days now and can't find anything that directly addresses the issue other than attempting to use org.jfree.chart.axis.AxisSpace in some way.
Many thanks for any help!
One approach would be to customise the axis label insets (that is, increase the space below each axis label).
http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/axis/Axis.html#setLabelInsets-org.jfree.ui.RectangleInsets-

How to create a dyraph with multiple x-axis labels?

I'm working with a lot of rank data that would benefit from a way to simultaneously display its respective year on the x-axis. For example, I want to create the following graph adapted from the dygraph gallery:
Note how the rank information (red arrow) for a particular weekend (green arrow) are both displayed on the x axis.
I know this might not be possible with dygraphs now, at least it wasn't available in these demos, so I guess my follow up question would be are there any plans to make this possible (how about in the [r] {dygraph} package)? Apparently a plotter called flot can do this.
UPDATE 1
If indeed this feature does not exist yet, then the following, although potentially obvious to Dygraph developers, is a thought for accomplishing the task easily (perhaps I'm wrong). At first I thought it would be necessary to provide input data of the form shown in Table A
However such input is a major deviation from the existing Dygraph parser model who expects one abscissa. Such suggests that a modification to the parser to accept a "Dual Label" option, requiring that both labels be contained in a single abscissa element as in Table B, would be easier. Thereafter, with the option specified, the parser would manage CSV as it usually would with the exception that it is now "bin cognizant" and detects division between labels 1 and 2 by use of an acceptable delimiter (in this case a single quotation mark - maybe not the best choice) and divisions between label 1 abscissa elements by name change. Behind the scenes each point gets its unique x coordinate and the "Dual Label" option causes the dygraph to visually scoot up a couple pixels to accommodate an extra label. Not sure how to handle full zoomed scrolling put simply leaving a label 1 element centered until an adjacent label 1 element comes on screen is an option.
Dygraphs rule!
There's no simple way to do this with dygraphs now. As you say, there's a fairly deep assumption that there's only a single x-axis.
Your best bet would be to either modify the existing legend plugin to do this, or to create a new plugin which renders just the "Weekend 1", "Weekend 2" line. While the plugins API isn't official yet, it is at least somewhat documented.
If you get this to work, please share your code!

Set maximum width of labels in an ASP.NET Chart

I am using the .NET 4 Chart control to create a bar chart. I have labels listed along the left axis (I believe this is the y-axis, I may be wrong). I want to set the maximum width that this axis can be. Currently, I have some labels that are really large. Ideally, I would like to truncate them. However, I cannot figure out how to do either of these.
Can someone tell me how to set the maximum width used by the labels in a Chart? Is it possible to truncate the labels so that if they are larger than the alloted space a "..." appears?
Thank you
I think below code helps to truncate x-axis width. check out something similar to this.
Chart1.Series("Series1")("PixelPointWidth") = "35"

Resources