SCATTERPLOT? Help please

I am trying to make a scatterplot to show the minimum, median and maximum values for each group (FG)

I would like to have A, E, G, L and S across the x-axis and the Min Median and Max values shown in different colours and shapes on the y axis for each of the five groups

The furthest I can get shows the plot with nothing but the x axis values using:
ggplot(OUTPUT_FG,aes(x=FG,Y=OUTPUT_FG))+scale_y_continuous(breaks=seq(0,1500000,5000))

I think I need to convert it to a long format to assign a number to each variable (A-S) to group the MIN MEDIAN and MAX values so I tried the following which doesn't give me the correct output:
library(tidyr)
OUTPUT_FG_LONG<-gather(OUTPUT_FG,FG,FWT,3:12)

I would really really appreciate some help, thanks in advance

Here is a sample of the data I am using:
write.table(OUTPUT_FG, sep=",")
"FG","FWT","AMin","AMax","EMin","EMax","GMin","GMax","LMin","LMax","SMin","SMax"
"1",1,537113,1830.41445901726,17981.0886441053,90.7450637794416,41560.3486756858,224.028924281903,30101.7604765311,221.796826576191,19601.0060119888,749.284617765864,178998512.683935
"2",2,3224,9.42635442384277,82.1361285675191,2.51519343211015,67.083963710308,1.46309656599444,233.019063871714,1.58883370561827,93.3337290768417,0,1486960.91317779
"3",3,685,3.30371297038363,26.2774745931753,0.715725246680189,8.47481785714133,0.300850047618523,1.80791030702447,0.147157331186644,2.57366610256929,3.02955245292829,28416.4057278252
"4",4,137618,656.91843245267,3934.81936181935,468.312516744254,3493.06748260309,105.817364586775,586.79157759584,364.474619558049,1705.38977304112,0,14491707.3205525
"5",5,72579,425.61960671238,6450.38711185724,151.649633131528,12491.0608948099,81.811362236091,1044.75714873975,72.5687712998734,587.505687355099,0,60414569.9598815

I thiunk we need to see your data in a usable format. Have a look at

1 Like

Is this the kind of thin you are trying to do? The range of values is so large that I made the y axis have a log scale. This causes a warning because some values are 0.

library(ggplot2)
library(tidyr)
library(dplyr, warn.conflicts = FALSE)
DF <- read.csv("~/R/Play/Dummy.csv")
DFlng <- gather(DF,key = "Grp_Stat",value = "Value",3:12)
DFlng <- mutate(DFlng, Grp = substr(Grp_Stat, 1,1), Stat = substr(Grp_Stat, 2,4))

ggplot(DFlng, aes(x = Grp, y = Value, color = factor(FG), shape = Stat, 
                  group = interaction(FG, Stat))) +
  geom_point() + geom_line() +
  scale_y_log10()
#> Warning: Transformation introduced infinite values in continuous y-axis

#> Warning: Transformation introduced infinite values in continuous y-axis

Created on 2021-02-01 by the reprex package (v0.3.0)

1 Like

That is amazing thank you so much.

How would I change the FG to the x axis and indicate the group (A,E,G,L or S) by the color of the dot?
And I don't need the line between them as they are independent but I am not sure how to remove this.

Also - would it be possible to space out the variables for each food group?
Something like this:

  Max Max Max Max Max      Max Max Max Max Max

  Min Min Min Min Min      Min Min Min Min Min

          FG1                       FG2 ..

Sorry I will read the guidelines and will try to make the dataset smaller in future!
Thank you so much!

Maybe this is a little closer to what you want. I adjusted the x values within each food group by a small amount depending on whether Grp is A, E, G, L, or S. To understand the ggplot() code, I suggest you read chapter 3, or the first three chapters, of R for Data Science.

library(ggplot2)
library(tidyr)
library(dplyr, warn.conflicts = FALSE)
DF <- read.csv("~/R/Play/Dummy.csv")
DFlng <- gather(DF,key = "Grp_Stat",value = "Value",3:12)
DFlng2 <- mutate(DFlng, Grp = substr(Grp_Stat, 1,1), Stat = substr(Grp_Stat, 2,4),
                 FG = as.numeric(FG),
                 xAdj = case_when(Grp == "A" ~ FG - 0.2,
                                  Grp == "E" ~ FG - 0.1,
                                  Grp == "G" ~ FG,
                                  Grp == "L" ~ FG + 0.1,
                                  Grp == "S" ~ FG + 0.2))

ggplot(DFlng2, aes(x = xAdj, y = Value, color = Grp, shape = Stat )) +
  geom_point() + labs(x = "Food Group") +
  scale_y_log10()

1 Like

Thank you so much that looks way better.
I adjusted your first solution and its coming out really nice.

One last thing I have to do is to try duplicate and rename the "Grp_Stat" column to just "Minimum" and "Maximum" values? So there are only two shapes on the graph.

I also need to rename the y axis labels from just numbers to text
(e.g. FG1 = Amy, FG2 = Anna etc.)

This is the best graph I got so far:
ggplot(DFlng, aes(x =Value , y = factor(FG), color = Grp, shape = Stat,
group = interaction(FG, Stat))) +
geom_point() +
scale_x_log10() +labs(y= "FG", x = "EI") +labs(title = "...")

Thanks so much in advance! Once I have those fixed up it should be perfect you are a life saver :slight_smile: :smiley:

I showed how to separate the Grp_Stat column into a individual Grp and Stat columns above with this line

DFlng2 <- mutate(DFlng, Grp = substr(Grp_Stat, 1,1), Stat = substr(Grp_Stat, 2,4))

Here is a toy example of setting the tick labels manually.

DAT <- data.frame(X = 1:4, Y = c("FG1", "FG2", "FG3", "FG4"))
#Default labels
ggplot(DAT, aes(X, Y)) + geom_point()

#Manual Labels
ggplot(DAT, aes(X, Y)) + geom_point() + 
  scale_y_discrete(labels = c("Amy", "Anna", "Bob", "Carl"))
1 Like

That worked, thanks so much!

Sorry I have worked on this since and I have one last problem -
I used the yAdj function to space out the lines for each FG on the y-axis but now I have lost the labels on the y axis (FGNAME = FG names) and I can't get them back

I've tried + lab(y=) and ylab functions, I need to group the 5 lines (yAdj) into one label (FGNAME) on the y axis so I tried the scale_y_binned but can't figure it out

The code I am using now is
INPUT2<- mutate(INPUT2, yAdj = case_when
(Output=="A" ~ FG - 0.10,
Output=="E" ~ FG - 0.5,
Output=="G" ~ FG,
Output=="L" ~ FG + 0.5,
Output=="S" ~ FG + 0.10))

PLOT_FG_LINKED<-ggplot(INPUT2, aes(x =Value, y = yAdj ,color = Output, shape = Input,
group = interaction(FGNAME, Input))) +
geom_point() + scale_x_log10() +labs(y= "FGS", x = "") +
theme(legend.position="right")+ scale_shape_manual(values=c(6, 17)) +
scale_color_manual(values=c('purple2','orange1', 'green4','orange4', 'deepskyblue3'))+ theme_gray(base_size = 12) + theme(plot.title = element_text(hjust = 0.5)) +
theme(text=element_text(family="Times New Roman", size=12)) + geom_line(aes(color=Output,group=interaction(Output, FGNAME)))

The legends also stays on the right even when I change it to bottom but this is a minor problem! I think this might be because there are two legends but I'm not sure

Thanks in advance :slightly_smiling_face:

Do you really want the yAdj values of E and L to be shifted by 0.5?

Can you please post the contents of the data frame INPUT2 that is used in the call to ggplot? run dput(INPUT2) and post the output with lines consisting of only three back ticks just before and after the output.
```
paste the output here
```

Let me know if this works for you below, sorry it's a large dataset.
I am trying to show the difference between the minimum and maximum by Grp_Stat for each FG and when I did it first the lines were overlapping so it was hard to read. They look a lot better spread out using the yAdj values (0.1 and 0.2 were too close together to read) - I am definitely open to better ways of showing it if this not the best way?
Thanks so much.

structure(list(FGNAME = c("Wheat & Rye (Bread)", "Maize (Meal)", 
"Barley (Beer)", "Oatmeal", "Rice", "Potatoes", "Other Pulses", 
"Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", "Sunflower Oil", 
"Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", "Root Vegetables", 
"Brassicas", "Other Vegetables", "Citrus Fruit", "Bananas", "Apples", 
"Berries & Grapes", "Wine", "Other Fruit", "Coffee", "Dark Chocolate", 
"Bovine Meat (dairy herd)", "Lamb & Mutton", "Pig Meat", "Poultry Meat", 
"Milk", "Cheese", "Eggs", "Fish (farmed)", "Crustaceans (farmed)", 
"Wheat & Rye (Bread)", "Maize (Meal)", "Barley (Beer)", "Oatmeal", 
"Rice", "Potatoes", "Other Pulses", "Peas", "Nuts", "Groundnuts", 
"Soymilk", "Tofu", "Sunflower Oil", "Rapeseed Oil", "Olive Oil", 
"Tomatoes", "Onions & Leeks", "Root Vegetables", "Brassicas", 
"Other Vegetables", "Citrus Fruit", "Bananas", "Apples", "Berries & Grapes", 
"Wine", "Other Fruit", "Coffee", "Dark Chocolate", "Bovine Meat (dairy herd)", 
"Lamb & Mutton", "Pig Meat", "Poultry Meat", "Milk", "Cheese", 
"Eggs", "Fish (farmed)", "Crustaceans (farmed)", "Wheat & Rye (Bread)", 
"Maize (Meal)", "Barley (Beer)", "Oatmeal", "Rice", "Potatoes", 
"Other Pulses", "Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", 
"Sunflower Oil", "Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", 
"Root Vegetables", "Brassicas", "Other Vegetables", "Citrus Fruit", 
"Bananas", "Apples", "Berries & Grapes", "Wine", "Other Fruit", 
"Coffee", "Dark Chocolate", "Bovine Meat (dairy herd)", "Lamb & Mutton", 
"Pig Meat", "Poultry Meat", "Milk", "Cheese", "Eggs", "Fish (farmed)", 
"Crustaceans (farmed)", "Wheat & Rye (Bread)", "Maize (Meal)", 
"Barley (Beer)", "Oatmeal", "Rice", "Potatoes", "Other Pulses", 
"Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", "Sunflower Oil", 
"Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", "Root Vegetables", 
"Brassicas", "Other Vegetables", "Citrus Fruit", "Bananas", "Apples", 
"Berries & Grapes", "Wine", "Other Fruit", "Coffee", "Dark Chocolate", 
"Bovine Meat (dairy herd)", "Lamb & Mutton", "Pig Meat", "Poultry Meat", 
"Milk", "Cheese", "Eggs", "Fish (farmed)", "Crustaceans (farmed)", 
"Wheat & Rye (Bread)", "Maize (Meal)", "Barley (Beer)", "Oatmeal", 
"Rice", "Potatoes", "Other Pulses", "Peas", "Nuts", "Groundnuts", 
"Soymilk", "Tofu", "Sunflower Oil", "Rapeseed Oil", "Olive Oil", 
"Tomatoes", "Onions & Leeks", "Root Vegetables", "Brassicas", 
"Other Vegetables", "Citrus Fruit", "Bananas", "Apples", "Berries & Grapes", 
"Wine", "Other Fruit", "Coffee", "Dark Chocolate", "Bovine Meat (dairy herd)", 
"Lamb & Mutton", "Pig Meat", "Poultry Meat", "Milk", "Cheese", 
"Eggs", "Fish (farmed)", "Crustaceans (farmed)", "Wheat & Rye (Bread)", 
"Maize (Meal)", "Barley (Beer)", "Oatmeal", "Rice", "Potatoes", 
"Other Pulses", "Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", 
"Sunflower Oil", "Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", 
"Root Vegetables", "Brassicas", "Other Vegetables", "Citrus Fruit", 
"Bananas", "Apples", "Berries & Grapes", "Wine", "Other Fruit", 
"Coffee", "Dark Chocolate", "Bovine Meat (dairy herd)", "Lamb & Mutton", 
"Pig Meat", "Poultry Meat", "Milk", "Cheese", "Eggs", "Fish (farmed)", 
"Crustaceans (farmed)", "Wheat & Rye (Bread)", "Maize (Meal)", 
"Barley (Beer)", "Oatmeal", "Rice", "Potatoes", "Other Pulses", 
"Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", "Sunflower Oil", 
"Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", "Root Vegetables", 
"Brassicas", "Other Vegetables", "Citrus Fruit", "Bananas", "Apples", 
"Berries & Grapes", "Wine", "Other Fruit", "Coffee", "Dark Chocolate", 
"Bovine Meat (dairy herd)", "Lamb & Mutton", "Pig Meat", "Poultry Meat", 
"Milk", "Cheese", "Eggs", "Fish (farmed)", "Crustaceans (farmed)", 
"Wheat & Rye (Bread)", "Maize (Meal)", "Barley (Beer)", "Oatmeal", 
"Rice", "Potatoes", "Other Pulses", "Peas", "Nuts", "Groundnuts", 
"Soymilk", "Tofu", "Sunflower Oil", "Rapeseed Oil", "Olive Oil", 
"Tomatoes", "Onions & Leeks", "Root Vegetables", "Brassicas", 
"Other Vegetables", "Citrus Fruit", "Bananas", "Apples", "Berries & Grapes", 
"Wine", "Other Fruit", "Coffee", "Dark Chocolate", "Bovine Meat (dairy herd)", 
"Lamb & Mutton", "Pig Meat", "Poultry Meat", "Milk", "Cheese", 
"Eggs", "Fish (farmed)", "Crustaceans (farmed)", "Wheat & Rye (Bread)", 
"Maize (Meal)", "Barley (Beer)", "Oatmeal", "Rice", "Potatoes", 
"Other Pulses", "Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", 
"Sunflower Oil", "Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", 
"Root Vegetables", "Brassicas", "Other Vegetables", "Citrus Fruit", 
"Bananas", "Apples", "Berries & Grapes", "Wine", "Other Fruit", 
"Coffee", "Dark Chocolate", "Bovine Meat (dairy herd)", "Lamb & Mutton", 
"Pig Meat", "Poultry Meat", "Milk", "Cheese", "Eggs", "Fish (farmed)", 
"Crustaceans (farmed)", "Wheat & Rye (Bread)", "Maize (Meal)", 
"Barley (Beer)", "Oatmeal", "Rice", "Potatoes", "Other Pulses", 
"Peas", "Nuts", "Groundnuts", "Soymilk", "Tofu", "Sunflower Oil", 
"Rapeseed Oil", "Olive Oil", "Tomatoes", "Onions & Leeks", "Root Vegetables", 
"Brassicas", "Other Vegetables", "Citrus Fruit", "Bananas", "Apples", 
"Berries & Grapes", "Wine", "Other Fruit", "Coffee", "Dark Chocolate", 
"Bovine Meat (dairy herd)", "Lamb & Mutton", "Pig Meat", "Poultry Meat", 
"Milk", "Cheese", "Eggs", "Fish (farmed)", "Crustaceans (farmed)"
), FG = c(1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 18, 19, 20, 
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 
15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 
33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 1, 2, 3, 4, 5, 6, 10, 
11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 1, 2, 
3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 
25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 
42, 43, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 18, 19, 20, 
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 
15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 
33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 1, 2, 3, 4, 5, 6, 10, 
11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 1, 2, 
3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 
25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 
42, 43, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 18, 19, 20, 
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 
38, 39, 40, 41, 42, 43, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 
15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 
33, 35, 36, 37, 38, 39, 40, 41, 42, 43)
, Grp_Stat = c("ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMin", "ABCMin", "ABCMin", "ABCMin", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ABCMax", "ABCMax", "ABCMax", 
"ABCMax", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMin", 
"ETGoPHAMin", "ETGoPHAMin", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"ETGoPHAMax", "ETGoPHAMax", "ETGoPHAMax", 
"GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", 
"GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", 
"GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", 
"GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", 
"GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", 
"GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", "GUGMin", 
"GUGMin", "GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", 
"GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", 
"GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", 
"GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", 
"GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", 
"GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", "GUGMax", 
"GUGMax", "GUGMax", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMin", 
"LUMin", "LUMin", "LUMin", "LUMin", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "LUMax", "LUMax", "LUMax", "LUMax", 
"LUMax", "SAMin", "SAMin", "SAMin", "SAMin", "SAMin", 
"SAMin", "SAMin", "SAMin", "SAMin", "SAMin", "SAMin", 
"SAMin", "SAMin", "SAMin", "SAMin", "SAMin", "SAMin", 
"SAMin", "SAMin", "SAMin", "SAMin", "SAMin", "SAMin", 
"SAMin", "SAMin", "SAMin", "SAMin", "SAMin", "SAMin", 
"SAMin", "SAMin", "SAMin", "SAMin", "SAMin", "SAMin", 
"SAMin", "SAMin", "SAMax", "SAMax", "SAMax", "SAMax", 
"SAMax", "SAMax", "SAMax", "SAMax", "SAMax", "SAMax", 
"SAMax", "SAMax", "SAMax", "SAMax", "SAMax", "SAMax", 
"SAMax", "SAMax", "SAMax", "SAMax", "SAMax", "SAMax", 
"SAMax", "SAMax", "SAMax", "SAMax", "SAMax", "SAMax", 
"SAMax", "SAMax", "SAMax", "SAMax", "SAMax", "SAMax", 
"SAMax", "SAMax", "SAMax"), Value = c(1830.41445901726, 
9.42635442384277, 3.30371297038363, 656.91843245267, 425.61960671238, 
941.516478, 163.771724248754, 87.5109437317878, 47.2119802679514, 
56.7873043854572, 4.63015187956006, 10.4130247588765, 8.38827982071612, 
0.203657055451813, 43.0422394496041, 213.631198613754, 50.7072653089173, 
197.631737924322, 136.383327468038, 136.208293440556, 412.221570764271, 
349.680982390917, 276.568449667721, 206.275915667642, 1137.64023164865, 
252.428752936026, 15936.7347274132, 4.61574896837775, 31630.5631890754, 
1936.08349518945, 8266.93776576953, 7790.10420905621, 5499.90866205595, 
2020.78836070619, 1418.0941780998, 2612.95779508915, 334.050076302664, 
17981.0886441053, 82.1361285675191, 26.2774745931753, 3934.81936181935, 
6450.38711185724, 5001.36808122018, 1531.58573542487, 580.276830729288, 
514.955354994973, 350.710895419579, 6.95809321957402, 20.5518808540113, 
63.8669922418228, 3.24292928987597, 489.464155200487, 17496.9576617376, 
98.8429966739058, 359.065563099404, 749.812207798281, 5880.54034136546, 
1533.4316969062, 1433.17063492159, 1043.95092108375, 6374.34792921489, 
7232.50491969533, 1790.17262382645, 86759.8057379078, 128.807193302854, 
268124.962679452, 11375.9653752395, 66733.3967059105, 153740.864936345, 
32610.3893186316, 15667.9714060556, 6211.47727442208, 22433.5984962309, 
2553.1282391717, 90.7450637794416, 2.51519343211015, 0.715725246680189, 
468.312516744254, 151.649633131528, 289.969317401095, 32.3318153011315, 
22.1513743504791, 23.0926747944693, 31.2815963286845, 0.751190470205128, 
3.45991787335113, 7.2677081802952, 0.0566229275878447, 14.0426799750613, 
18.2495340110639, 13.5779139983798, 41.676950795916, 66.0753388031506, 
26.4337100972027, 59.803422133548, 159.990047001797, 38.6901063111706, 
40.4323519703574, 90.4315704294249, 53.8461741265386, 7442.73028371437, 
2.60235941116765, 19308.9058255285, 558.362567135754, 4202.50791693368, 
5952.30031672874, 2099.89144095693, 1098.64971852309, 837.724706183846, 
1725.70313664497, 358.827690066946, 41560.3486756858, 67.083963710308, 
8.47481785714133, 3493.06748260309, 12491.0608948099, 5515.60909218012, 
2037.65434150351, 946.670953128369, 392.094348763504, 120.968577135717, 
6.2274262777771, 27.2572471642317, 169.185074212421, 1.13299266671529, 
279.120849081051, 8453.12860662174, 153.696017016873, 833.425613229169, 
469.41335618133, 1450.05152911647, 1545.68630875956, 3888.79459676371, 
800.17796594915, 1265.93470499932, 2519.48675965882, 1625.89023708024, 
128442.800640758, 182.822545729799, 612120.370983073, 4885.02432254558, 
33802.6129555853, 79413.6627201489, 27183.0974058277, 13407.4441729753, 
2840.17525516447, 328941.340504894, 6005.81193226902, 224.028924281903, 
1.46309656599444, 0.300850047618524, 105.817364586775, 81.811362236091, 
45.646302624441, 27.7135674721074, 12.6159349427063, -34.9498011713207, 
7.87485856142544, 1.01970002322873, 2.01046568042925, 2.05957528452955, 
0.0331866577409982, 8.25764802466593, 16.2080888560624, 3.62779696075475, 
14.2757634236877, 15.3530543019317, 8.58172584341361, 4.55585258196567, 
50.8806188208057, 31.3903799108532, 31.3334556270605, 196.319887101159, 
2.661997191863, 2258.87919549203, -3.00618690051588, 2220.58731088781, 
517.887602476842, 947.600461320703, 1047.94808954407, 1310.54023467009, 
487.000734492161, 179.3213491945, 488.4273629083, 43.5741775109431, 
30101.7604765311, 233.019063871714, 1.80791030702447, 586.79157759584, 
1044.75714873975, 744.48743549361, 219.213507249851, 64.5686118201366, 
102.309194076355, 38.0098520517504, 2.74977722589676, 9.51956423575063, 
7.44866682606424, 0.231846935981025, 88.7797807422717, 2105.95438937986, 
17.7093930387773, 124.175236894027, 166.910874391131, 1154.2230544332, 
633.623320089476, 168.465307793257, 226.934438529174, 611.006273595273, 
952.835456465894, 396.551939614457, 40419.0888041244, 198.359843954138, 
17157.5496437739, 1715.25808505417, 3948.00754024698, 12391.948518112, 
14199.3030151885, 8120.8027451551, 590.73461131214, 8236.41091734824, 
518.388909416568, 221.796826576191, 1.58883370561827, 0.147157331186644, 
364.474619558049, 72.5687712998734, 92.6642280264838, 43.6218306870024, 
51.0591110113867, 16.3409693045504, 25.9112792422776, 0.40786985030339, 
1.77707938944572, 6.09213028354207, 0.0792293721856636, 25.3496397135416, 
1.3570038674895, 2.04005184169368, 13.7347282075972, 9.08868792620099, 
2.37644221103115, 69.6606457026589, 22.6599122986046, 35.7588555952381, 
16.4956880546817, 211.916754709471, 16.6289191722063, 4011.8409686322, 
15.7113322216908, 2490.54082346285, 459.649971551135, 1054.74452307419, 
1661.27739343066, 670.421936591792, 335.527362810044, 260.797746467273, 
25.6739546527547, 0.397914337277236, 19601.0060119888, 93.3337290768417, 
2.57366610256929, 1705.38977304112, 587.505687355099, 1850.82642534017, 
1736.78934787662, 616.385558726737, 198.807636758234, 94.5799974743117, 
2.44796657581988, 10.6657330633918, 67.4273076052921, 1.08849462247449, 
1021.42651919696, 1004.46730500945, 28.5633125152451, 203.017339341801, 
283.51158703234, 345.829664866088, 418.448308300793, 1835.38811348928, 
285.690793470908, 498.133510125428, 904.701404673274, 556.650939542946, 
109938.829639282, 122.261005605228, 82024.8802914073, 245133.524637432, 
40939.8919177908, 16062.2254736315, 235832.483775089, 113917.002231439, 
1688.28695772381, 16291.9585189868, 489.436963847917, 749.284617765864, 
0, 3.02955245292829, 0, 0, 0, 0, 0, 0, 0, 1.45831626797613, 6.13631257612427, 
2.27049961506773, 0.0154837588838383, 570.655426367956, 931.83328070153, 
0, 0, 0, 35.4651822897959, 0, 0, 0, 1470.22126309246, 271.870319314286, 
0, 2429.55974238454, 3.95728790264001, 62061.7122744639, 23663.8536504882, 
7373.18056198207, 5489.5792862919, 15555.55119789, 7382.62126352202, 
28814.8115667685, 73843.4143527419, 0, 178998512.683935, 1486960.91317779, 
28416.4057278252, 14491707.3205525, 60414569.9598815, 18553088.3485839, 
18011560.9510073, 8524399.66651024, 3489895.7204657, 1200079.38217784, 
28262.8746728464, 123129.353185378, 500606.556578648, 17754.2027297142, 
2720022.53709788, 1752683.37036258, 107879.869153533, 574267.769112471, 
4403647.08979232, 7320024.69119212, 11112786.7366058, 639708.153847374, 
9999315.75639665, 3125134.35973711, 7493769.02712587, 11516497.0522992, 
387615.883436804, 126181.889091592, 54119324.4426193, 16384240.0405309, 
33712553.0735109, 55821090.1838074, 88484094.727346, 52290808.1672487, 
6851088.1878288, 17136078.0335784, 6848940.44489393), Output = c("ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "ACE", 
"ACE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "EE", 
"EE", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "GGA", 
"GGA", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "LUM", "LUM", "LUM", 
"LUM", "SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA", 
"SWA", "SWA"
), Input = c("Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Minimum", "Minimum", 
"Minimum", "Minimum", "Minimum", "Minimum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum", "Maximum", 
"Maximum", "Maximum", "Maximum", "Maximum", "Maximum")), row.names = c(NA, 
-370L), class = c("tbl_df", "tbl", "data.frame"))

Using the data you posted, this gets your y labels back.
The graph is rather hard to read. I suggest you make at least three plots, one for Wheat & Rye through Tofu, one for Sunflower oil through Dark Chocolate, and one for the remaining items

INPUT2<- mutate(INPUT2, yAdj = case_when
                (Output=="ACE" ~ FG - 0.10,
                  Output=="EE" ~ FG - 0.5,
                  Output=="GGA" ~ FG,
                  Output=="LUM" ~ FG + 0.5,
                  Output=="SWA" ~ FG + 0.10))

UniqueFG <- unique(INPUT2[,c("FGNAME", "FG")])

ggplot(INPUT2, aes(x =Value, y = yAdj ,color = Output, shape = Input,
                   group = interaction(FGNAME, Input))) +
  geom_point() + scale_x_log10() +labs(y= "FGS", x = "") +
  scale_y_continuous(breaks = UniqueFG$FG, labels = UniqueFG$FGNAME,
                     minor_breaks = NULL) +
  theme(legend.position="right")+ scale_shape_manual(values=c(6, 17)) +
  scale_color_manual(values=c('purple2','orange1', 'green4','orange4', 'deepskyblue3'))+ theme_gray(base_size = 12) + theme(plot.title = element_text(hjust = 0.5)) +
  theme(text=element_text(family="Times New Roman", size=12)) + geom_line(aes(color=Output,group=interaction(Output, FGNAME)))

1 Like

Amazing thanks so much.
It looks perfect now but there's a gap on the y axis showing between Potatoes/Other Pulses and Tofu/Sunflower Oil and at the top and the bottom of the axis?

Sorry I can't see in the code why this is happening, Thanks so much!

This will be on an A4 page so I think it will be OK in one plot - my supervisor asked for it this way, I will present it to him as one graph and suggest dividing it up if that's OK! I can't see in the code where you broke the FG into three sections :face_with_monocle:

There are gaps in the y axis because the y values are set by FG (plus the tweaking encoded in yAdj) and the FG values do not increment uniformly. There are 37 distinct values but they span 1 - 43. The gaps could be closed by replacing the current FG values with the numbers 1 - 37.

If the graph will be on an entire A4 page, I think it will be readable. I did not subdivide the groups in my code.

Ah sorry in my previous graphs these gaps were just ignored.
I will add in a new column with the seq 1-37 thank you so much I really really really appreciate your help!!

Congrats on learning to use ggplot. Side thought, would boxplots be a better visualization for your data than these scatterplot points? It is kind of cumbersome to try to visually sort out the circles and triangles for min and max for each group.

1 Like

Thank you!
I am not sure - I added + facet_wrap(vars(Output),nrow=1) to the code so the colours are now spread across 5 graphs with the 37 groups on the y axis with a line between the min and max values and it's a lot clearer but still quite small to read

I'm not sure how I would use boxplots for this - since there are 5 factors and 43 groups?
Always open to feedback and suggestions I just can't imagine it!

I am stuck on another part of my project if you know anything about it I would really appreciate your help