I am trying to plot a histogram and I tried the following. First I tried this
x<-hist(t$Sum_of_OHR.s,breaks=c(0,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00))
but that did not set proper limits for the y axis i.e in spite of having a count more than 5000 the axis limit was displayed as 4000. This works
> histr<-hist(t$Sum_of_OHR.s,breaks=c(0,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00),ylim=c(0,6000))
The problem however is that the count may change drastically depending on the data. So, I need something that would set the y limits based on the data. Could someone please tell me how I should go about it?
You can add a variable in place of the 6000 so you could sum or count your y variable and then add 10% or an amount you feel comfortable with as a means of padding it.
e.g.
ysize<-sum(t$Sum_of_OHR.s)*1.1
cbreaks<-seq(0,1,by=0.05)
histr<-hist(t$Sum_of_OHR.s,breaks=cbreaks,ylim=c(0,ysize))
Related
I want to create a plot that shows the live metering data I am getting from an electricity meter.
I already figured out how to have a plot in bokeh, that updates every x seconds with new values, but now I want to have the new values always be at a fixed point in the plot, while the range of the axis does not increase.
I fixed the range by adding x_range=[0, 10] to the figure, however that plot is running out of the screen and I have to manually follow it.
How do I change it so it follows it automatically?
Is that even possible in bokeh or should I be using something different for my project?
Use a default DataRange1d range (i.e. do not set the range to a fixed interval) and then set the follow property on the range. You can also set follow_interval to specify how far back the range should trail the latests data.
p.x_range.follow = "end"
p.x_range.follow_interval = 100
For a complete demonstration see the OHLC ticker example.
I have drawn a plot using "plotArrays" function in Dymola. I would like to label X-axis in meters(Ideally, I need it to be flexible so that I can later change it to millimeters, micrometers, etc..). I want to label Y-axis similarly in volts which I have done already using
plotArrays(x_axis,phie,legend=names,units=fill("V",size(phie,2)));
and I can read the values in volts and also change to mV etc.. However, its not 'visible' in Y-axis as you can see in the plot below. So, How can I label the axes separately?
Thanks a lot!
I don't know any more efficient possibility than this:
createPlot(id=1, erase=false, grid=true, leftTitleType=2, leftTitle="myLabelY", bottomTitleType=2, bottomTitle="myLabelX")
with:
id being the number shown in the original plot
erase=false to ensure that the content is not modified
grid=true (re-)enabling the grid
*TitleType=2 saying that there is a custom title
*Title being the string to put there
This will result in the plot being resized to the default size. You can use plotSetup() to get the current setup, including position, which you can then pass (manually) to the createPlot() command to result in the original size again.
Not very elegant, but I don't know any other possibility...
I want to plot time on x axis and a numeric field 'f' occurring at that time on y axis in kibana 4.
I have changed the data type of 'f' to integer and I can confirm that it has changed from kibana index settings.
However, the only aggregation options available for Y axis are count/min/max/sum etc. This post has an answer for plotting sum but I'm interested in plotting actual values.
Is there a way to do this?
You probably want to check this.
tl;dr
The data you want to plot, are not numbers.
Update your grok filter to something like this %{NUMBER:time:float} instead of whatever you have.
Re-index/re-hash your elasticsearch (i just deleted my data and restarted the whole thing)
Goto Kibana4 -> Visualize -> New line graph
In Y axis select max and in the field, select your number field.
Kibana is plotting a bucket, e.g. every minute.
As such, aggregations are in order. I frequently plot average and max on the same chart to give me a good overview.
If you reduce the time period, the buckets get smaller, but I don't think you can ever make them "just 1 document".
I have a plot, where the lines are only in the negative range and when I plot it, the axis is automatically changed, i.e. negative larger values are going up and not down, in a normal plot. Currently I have the following plot:
But I want to have the y axis the other way round, so that negative larger values are going down and not up, I hope it is understandable what I mean.
How can I achieve this in R?
My code with my specific data is just using the normal plot() function.
As Ben Bolker said, the following has to be said:
I set the ylim range wrong, I set it like
ylim=c(-0.05,-1)
but
ylim=c(-1,-0.05)
should do what I want!
here is the image of column chart which i am drawing by using the samples provided in flash's help page.
Now i need to increase the margin of y axis series. For example, as per the attached image it is 200 and i want to make 500 so that less points should come on y axis label bar.
Thanks in adv!
You can create your own labelFunction through which you can change the default values of Y axis labels.
You can also use the Mahesh Parate's suggestion to set the min and max values of the Y axis label.
OR you can use both 1& 2 together
I dont think the above answers actually satisfies what was i looking for.
There is simple attribute in flash "interval". it does the trick.