facet_wrap: using x_free scale but having only 2 different x-axis with date - axis-labels

I performed on three sites in two different periods messurements. Now i want to show the results using facet_wrap. Here I want to have 2 columns (first line first period, secound line secound period) and each site in a row. To have only the respective dates in the respective graph, I use x_free, resulting in the desired graph. Now I would like to delete the X axis labels in the above graphs so that the date is only visible in the last graph.
My data looks like that:
enter image description here
My code for the plots is this one:
test_data$date <- as.Date(test_data$date )
Boxes <- ggplot(test_data, aes(date, number_bats)) +
geom_col(aes(date,number_bats)) +
facet_wrap(~Box, ncol = 2, scales = "free_x")
print(Boxes)
and the resulting graph looks like that:
enter image description here
How can I now delete the dates in the first two graphs, but keep it in the last one?
Thanks for your help!

I found this package "ggh4x" with an extended facet function (facet_grid2 and facet_wrap2) which solved my problem.

Related

SSRS - show missing axis on column chart where there are no values?

I have a column chart in SSRS that looks like the attached. This shows the percentage of calls across the day. I have been asked to also show the hours on the chart where there were zero calls.
I have tried adding this into my dataset in SQL however this turned almost 200 rows into 20000 rows (due to the period of time looked at which can sometimes be years)
I have tried using the lookup function to add a time dimension into my report, and then join the dataset onto this time dimension - I then found out that I can't use SUM in a lookup function so I am a bit stuck. Does anyone have any workarounds for this?
Value expression is "=Sum(Fields!Calls.Value) / Sum(Fields!Calls.Value, "UsageSummary")"
What chart looks like now (wrong)
What chart should look like (with all hours included)
Have you tried clicking on the horizontal axis properties
On the Axis Options update the Interval from Auto to 1

representing 2 different metrics with different columns in line chart

I am preparing a datastudio report. The data studio report consists of the following columns below:
As seen in the picture it captures metric data at a particular time.
The date range is set as the end_time
The X axis will represent the end_time column and the breakdown dimension will be InstanceName column and I am preparing to show it as line chart.
There are 2 metrics readops and writeops columns.
I need to represent these 2 metrics as 2 different lines in the same chart so that the read and write operation fluctuations for the instance at a particular time can be easily viewed.
I am not sure on how to represent this on data studio. If it is 1 metrics, i know it is straight forward. I can set instancename as breakdown dimension and end_time as dimension and date range is set to end_time and can represent it. But to represent the 2 metrics as 2 different lines for a particular Instance, with the time range on x axis, i don't know as I am very new to datastudio. I want to do it without drill-down. similar to the picture below which I got from google cloud console which shows ReadBytes the Big Triangle and the smaller one at the bottom in red for WriteBytes
Can anyone help me? Thanks
There are two approaches based on how the the charts need to be displayed:
1) Filter Control
If the aim is to only display 2 lines (2 Metrics):
readops
writeops
While allowing the user to select the required InstanceName, then a Filter Control (optionally with a default selection) could be used.
The chart would be set up using:
Dimension: end_time
Metric #1: readops
Metric #2: writeops
Editable Google Data Studio Report and a GIF to expand on the above:
2) Multiple Metrics
If the objective is to display a line for each of the InstanceName values as well as both the Metrics (readops and writeops), then the below approach would be one way.
Currently, when using a Breakdown Dimension, Google Data Studio charts (such as a Time Series chart) support a single metric.
Using the Data Set below, based on the screenshot in the question (Editable Google Sheets):
One approach is to create and use multiple CASE statements at the Data Source; for example:
readops_dum
CASE
WHEN REGEXP_MATCH(InstanceName, "(dum)") THEN readops
ELSE NULL
END
writeops_dum
CASE
WHEN REGEXP_MATCH(InstanceName, "(dum)") THEN writeops
ELSE NULL
END
etc...
Editable Google Data Studio Data Source and an image to elaborate:
A Chart could then be created with end_time as the Dimension and using the newly created Metrics; Editable Google Data Studio Report and an image to visualise with a Time Series chart:

EXCEL: Create Array Formula out of INDEX/MATCH with multiple results

my aim is to convert a massive excel sheet with different projects, employees and hours worked per month into an overview per employee. It should be possible to display the projects the employee is involved in and how many hours he worked per project per month.
The original sheet looks something like this:
I managed to find the projects Person A worked in by filtering through the INDEX/MATCH function. I applied the formula to the whole row where the employees are listed and receive multiple results of projects. My question is how to transform the formula into something more effective to copy all of the matched results (projects) into a column (see 1).
This is what I have so far, if matches the employee name in a certain area; the output is the first match of the project he is involved in:
=INDEX(B2:J3;1;MATCH("Person A";Sheet1!B3:E3;0))
How can I copy this to the bottom cells to copy all of the matched results? Does it help to create an array formula with this?
You can use he following formula in cell B9:
=IFERROR(INDEX($2:$2,SMALL(IF($3:$3=$B$8,COLUMN($3:$3)-COLUMN(INDEX($3:$3,1,1))+1),ROWS(A$1:A1))),"")
It indexes row 2 and looks for the column number of the first match in row 3 that equals the value in B8 (=Person A). When dragging down it will look for the second match ROWS(A$1:A1) will become ROWS(A$1:A2) = 2.
For Person B you can use this formula in cell B14:
=IFERROR(INDEX($2:$2,SMALL(IF($3:$3=$B$13,COLUMN($3:$3)-COLUMN(INDEX($3:$3,1,1))+1),ROWS(A$1:A1))),"")
I hope this is what you where looking for.
PS
if you paste the following formula in cell C9 you will get the sum result for Person A on Project XY in month 10 2019:
=IF(OR($B9="",C$8=""),"",SUMPRODUCT(($B$2:$K$2=$B9)*($B$3:$K$3=$B$8)*($A$4:$A$6=C$8),B4:K6))
Note: That is provided that the value in cell C8 equals the value in cell A4.

SSRS plot value of DataSet multiple times

I have a table of data like so.
I would like to plot it on the same graph. I managed to get it to plot when putting it in a table that sorts on category "GreenTemp1", but what I would like is to plot it together on the same chart. Can anyone help me?
Edit:
I would like it to plot it like this but it does not show anything.
Add a separate series for each of the DeviceNames. The value expression for each series can be along the lines of:
=iif(Fields!DeviceName.Value = "GreenTemp1", sum(Fields!Value.Value), Nothing)
Obviously change the number for each series. Give each series its own legend name as well, and remove the category group for DeviceName.

Reporting Services Chart - Hard Coded Series

I am developing an SSRS 2008 report which contains a number of simple charts. On the x axis I have the 12 months of this year - Jan 2009 thru December 2009. On the Y is an integer value ranging from 0 to 100 in increments of 10. I am plotting the number of times an issue occurred per month. So January could have a value of 10, February 30, etc. etc.
I would like to have a horizontal line/series that is constant and shows the yearly average for 2008. So, say the average was 30 issues per month in 2008, I would like for that line to be shown in my chart. Basically, I want to draw a straight line across the chart for that value... I can see how to add more complex series, but this seemingly simple task is getting the better of me.
Doe anyone have any idea how this could be accomplished?
Thanks in advance,
Jason
[Update] To add some further details, I am already pulling the average for each row in my dataset and have it set up as its own series. However, rather than plotting a line, this approach plots individual points for each month. While this is close to what I want, I need to join the dots so to speak. The chart is of the Error Bar (Range) variety.
Can you use a column / line hybrid chart? If so then add a constant or dynamic target value to the chart:
Design the chart.
On the Data tab in the Chart Properties dialog box, add a new data value (for example, Target).
Set the target value (see the example in Figure 9 on link this uses a constant target value of 100000 across all categories but you can do it dynamically too). Make sure to use an expression starting with = (equals). Otherwise, the value is not interpreted as a numeric value.
See the example on the MS charts page at http://msdn.microsoft.com/en-us/library/aa964128.aspx
Add the yearly average to each row in the underlying the query. Add data series on just that value.
I managed to solve this issue myself.
As I mentioned, I was using an Error Bar graph. Right-clicking on the series of interest, I was able to change the graph type for that particular series - essentially leaving me with a chart with multiple graphs in it...particularly simple if you know where to look - which i did not! Thanks everyone for your suggestions.

Resources