One of my line charts contain values in the range 0..11.5
flot is using yaxis with 0..12
the problem: value 0 is drawn on the axis (see attached image)
Is there a way to tell flot to add a small margin, e.g. use 0.5 margin?
or - Is there a way to get the min and max values, so I manually can set xmin and xmax?
There is the autoscaleMargin option for the axis which does what you want. Or you can set min and max values for the axis manually.
The default for autoscaleMargin on the y-axis is 0.02 (you can see that the points are not completely on the axis but slighty above). Increase this to your liking.
Related
I'm trying to tailor the chart above to take up as little vertical space as possible. It is a line chart showing binary data (1 or 0 for door open or closed), but it seems to force me to have the decimal ticks between the two values, even thought every point's y-axis value is 1 or 0 as integers. Ideally it would be no taller than the width of the y-axis label.
Is this possible? I've tried various things to do with the container, removing y-axis ticks etc, but I'm struggling to get it more compact than this.
UPDATE:
I've managed to get rid of the decimal ticks with config from these docs. Still no luck on the height...is there an undocumented minimum or something?
Per this question, the answer is to set a fixed height on the chart canvas.
Fix the height of Y-Axis of Bar chart in chart.js?
I created a custom data label series using "Value From Cells" to have a label at the end of the chart displaying the current value. Unfortunately, the axis labels are "on top"/"in front" of the data label. Is there any way to change this (VBA or otherwise)?
I just came up with a kind of absurd workaround. I'll do my best to explain it here in case anyone else comes across this.
To make this easier, the point I want the data label for will be called A. This is the latest value of the original series that should be labeled off to the right of the chart.
I removed the old data labels.
I created a scatter plot with one point: (0,y). The y value was set to A as a percentage of the minimum to maximum y-axis range. So if A is 3 and the y-axis range is -2 to 10, then the y-value would be 3/(10 - -2) = 3/12 = .25. So the result would be a scatter plot with one point at (0,.25).
I made everything on the scatter plot chart (e.g. plot area) invisible EXCEPT the one scatter plot point. This gives me a floating scatter point that moves up and down the y-axis, depending on the percentage calculated above.
I added a y-axis to the scatter plot, and set the minimum to 0 and the maximum to 1. I then removed the axis. This was only to set that min/max.
I moved my scatter plot so that the top/bottom of the plot area was exactly even with the top/bottom of the plot area of my original chart. So now, I have a single point that is moving up and down along the height of the original chart's plot area. Its up/down position is determined by A, and it will line up exactly with the y-position of A (because that's how I designed it).
I added a data label to the scatter plot and hid the scatter plot series. So now, I have my data label in the correct up/down position (lined up with the A).
Change the data label "Label Options" --> "Label Contains" to "Value From Cells". Then reference a cell with A's value that we want displayed (instead of the % value we used to get the up/down position right).
Last step is just to move the scatter plot left/right until it's in the perfect spot to the right of the plot area, and done!
Then repeat that miserable process for 16 charts with copy/paste when possible. Hope this helps someone else!
So I am trying to make a nice line graph for some data that I have. Each line has 100 data points, so excel automatically makes the horizontal axis from 1-100. I want to change the min/max values for the horizontal axis from 0-1, without moving the frame of the graph (i.e. without zooming in the graph). I just want to divide the horizontal axis numbers by 100 in order to rescale the time. This is what my graph looks like now:
http://imgur.com/33KD7RY
So I want to change the numbers on the horizontal axis to be fractions or decimals in the range [0,1]. Does anyone know how I can do this, or any other graphing software that would allow me to do this (I have tried using google sheets, but they have less options to customize axes than excel). Thank you!
Did you use two column to plot one line and did you use the Scatter with smooth lines chart type?
Have one column (X) go from 0 to 1 using intervals of 0.01 and your data in your second column (Y). When using a scatter with smooth lines chart type your answer should look like this:
image graph
Plotting your second line in the same chart can be done the same way by adding it through the 'select data' options of the chart.
I have a plot with exponential y axis range. I'm using multiplot command by inserting two images in one row. So due to this wide y axis range I'm loosing some space which I could use it to show my plots in a better way. I want basically something like this
How could i do this? I think for doing this I have do some math operations in the y axis range. Also what is the most convenient command to insert ( xE-10) at top left of the plot.
reset
set terminal epslatex size 16cm,18cm color colortext
set output new.tex
set key off
set format $%g$
set title "sinx"
set ylabel "[kNm]"
plot 1000000*sin(x)
This is not my exact code but it looks similar to this. The plot I have presented is a part of the multiplot code and I use 7 input files with time series data of 300 seconds at a time step of 0.02. The point I want to edit the y axis range (use some mathtematical expressions) and also include the term ( xE-10 ) on the top of the plot something like this
You can manually add the exponent with a set label .... For instance, the following function takes large values within the given interval:
plot[0:50] exp(x)
We can place the "x 10^21" manually in the desired place after dividing the plotted quantity by it:
set label 1 "{/Symbol \264} 10^{21}" at graph 0,1.025 left
plot[0:50] exp(x)/1e21
You have to be careful with the exact placement of the exponent since it might lie outside the plotting area, in which case you should lower the top margin with set tmargin .... Also, to use the "times" symbol, you need to pass the enhanced option to your terminal. With the epslatex terminal, you can use latex syntax: $\times 10^{21}$.
I would like to know how to programmatically find and the Y axis maximum of an excel chart when there is more than one available.
My end goal is to find the max y-axis values, compare them, and set them both to the greater of the two.
VBA similar to this will retrieve scale value
With ActiveChart.Axes(xlValue, xlPrimary)
ActiveSheet.Range("A1").Value = .MaximumScale
End With
For more detail on how to link chart axis scale parameters to values in cells check out
http://peltiertech.com/Excel/Charts/AxisScaleLinkToSheet.html#ixzz0r8qN248l
If you want both axes to automatically show the same min and max values, you need both to plot the same spread of data.
In this simple example, I used the following data to create a chart, with "primary" plotted on the primary axis and "secondary" plotted, well, you know.
In the next table, I've calculated the min and max of all the data. I calculated min and max twice and staggered them to clearly show what I'm doing. I copied the shaded range, celected the chart, and used Paste Special to add the data as new series, in columns, series names in first row.
The resulting chart is shown below left. I've ensured the the new series "pri" is on the primary axis and "sec" is on the secondary axis. Since both axes are using the same min and max data to autoscale, both have the same scales. Below right I've hidden the dummy series by formatting them with no lines and no markers. I've hidden each unwanted legend entry by first clicking on the legend, then clicking on the individual legend entry, then pressing Delete.
This technique can also be used to synchronize the axes of multiple charts. Below are three small charts with different scales (top row). In the middle row, the calculated min and max have been added to each chart, causing their axes to autoscale on the same min and max. In the bottom row, the dummy series have been hidden, leaving behind uniform axis scales.