Hello, I want to plot the following kind of data (percentage of respondents from a survey) that varies by Income into many small *line* graphs in a panel of graphs. I want to omit "No Answer" categories. I want to see how each one of the categories (percentages), "None", " Equity", etc. varies by Income. How can I do this? How to organize the data well and how to plot? I thought Lattice may be a good package to plot this, but I don't know for sure. I prefer to do this in Base-R if possible, but I am open to ggplot. Any ideas will be helpful. Income $10 $25 $40 $75 > $75 No Answer MF 1 2 3 4 5 9 None 1 3.05 2.29 2.24 1.71 1.30 2.83 Equity 2 29.76 28.79 29.51 28.90 31.67 36.77 Debt 3 31.18 32.64 34.31 35.65 37.59 33.15 Hybrid 4 36.00 36.27 33.94 33.74 29.44 27.25 Bank AC None 1 46.54 54.01 59.1 62.17 67.67 60.87 Current 2 24.75 24.4 25 24.61 24.02 21.09 Savings 3 25.4 18.7 29 11.48 7.103 13.46 No Answer 9 3.307 2.891 13.4 1.746 1.208 4.577 Thanks. -- Anupam. [[alternative HTML version deleted]]
Hi You probably can use any package including base R for such plots. 1. Posting in HTML scrambles your date so they are barely readable. 2. Use dput(head(yourdata, 20)) and copy the output to your mail to show how your data look like. Although it seems to be not readable, R will consumes it freely. 3. If I understand correctly you should have an Income column, Percentage column and Category column. If this is the case ggplot(yourdata, aes(x=Income, y=Percentage)) + geom_line() + facet_grid(~Category) should give you what you want. But without data it is hard to say. Cheers Petr> -----Original Message----- > From: R-help <r-help-bounces at r-project.org> On Behalf Of Anupam Tyagi > Sent: Wednesday, June 28, 2023 10:34 AM > To: R-help at r-project.org > Subject: [R] Plotting factors in graph panel > > Hello, > > I want to plot the following kind of data (percentage of respondents froma> survey) that varies by Income into many small *line* graphs in a panel of > graphs. I want to omit "No Answer" categories. I want to see how each oneof> the categories (percentages), "None", " Equity", etc. varies by Income. > How can I do this? How to organize the data well and how to plot? Ithought> Lattice may be a good package to plot this, but I don't know for sure. Iprefer> to do this in Base-R if possible, but I am open to ggplot. Any ideas willbe> helpful. > > Income > $10 $25 $40 $75 > $75 No Answer > MF 1 2 3 4 5 9 > None 1 3.05 2.29 2.24 1.71 1.30 2.83 > Equity 2 29.76 28.79 29.51 28.90 31.67 36.77 Debt 3 31.18 32.64 34.3135.65> 37.59 33.15 Hybrid 4 36.00 36.27 33.94 33.74 29.44 27.25 Bank AC None 1 > 46.54 54.01 59.1 62.17 67.67 60.87 Current 2 24.75 24.4 25 24.61 24.0221.09> Savings 3 25.4 18.7 29 11.48 7.103 13.46 No Answer 9 3.307 2.891 13.41.746> 1.208 4.577 > > Thanks. > -- > Anupam. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting- > guide.html > and provide commented, minimal, self-contained, reproducible code.
Hi Anupam, Haven't heard from you in a long time. Perhaps you want something like this: at_df<-read.table(text "Income MF MF_None MF_Equity MF_Debt MF_Hybrid Bank_None Bank_Current Bank_Savings Bank_NA $10 1 3.05 29.76 31.18 36.0 46.54 24.75 25.4 3.307 $25 2 2.29 28.79 32.64 36.27 54.01 24.4 18.7 2.891 $40 3 2.24 29.51 34.31 33.94 59.1 25.0 29 13.4 $75 4 1.71 28.90 35.65 33.74 62.17 24.61 11.48 1.746 >$75 5 1.30 31.67 37.59 29.44 67.67 24.02 7.103 1.208 No_Answer 9 2.83 36.77 33.15 27.25 60.87 21.09 13.46 4.577", header=TRUE,stringsAsFactors=FALSE) at_df<-at_df[at_df$Income!="No_Answer",which(names(at_df)!="Bank_NA")] png("MF_Bank.png",height=600) par(mfrow=c(2,1)) matplot(at_df[,c("MF_None","MF_Equity","MF_Debt","MF_Hybrid")], type="l",col=1:4,lty=1:4,lwd=3, main="Percentages by Income and MF type", xlab="Income",ylab="Percentage of group",xaxt="n") axis(1,at=1:5,labels=at_df$Income) legend(3,24,c("MF_None","MF_Equity","MF_Debt","MF_Hybrid"), lty=1:4,lwd=3,col=1:4) matplot(at_df[,c("Bank_None","Bank_Current","Bank_Savings")], type="l",col=1:3,lty=1:4,lwd=3, main="Percentages by Income and Bank type", xlab="Income",ylab="Percentage of group",xaxt="n") axis(1,at=1:5,labels=at_df$Income) legend(3,54,c("Bank_None","Bank_Current","Bank_Savings"), lty=1:4,lwd=3,col=1:3) dev.off() Jim On Wed, Jun 28, 2023 at 6:33?PM Anupam Tyagi <anuptyagi at gmail.com> wrote:> > Hello, > > I want to plot the following kind of data (percentage of respondents from a > survey) that varies by Income into many small *line* graphs in a panel of > graphs. I want to omit "No Answer" categories. I want to see how each one > of the categories (percentages), "None", " Equity", etc. varies by Income. > How can I do this? How to organize the data well and how to plot? I thought > Lattice may be a good package to plot this, but I don't know for sure. I > prefer to do this in Base-R if possible, but I am open to ggplot. Any ideas > will be helpful. > > Income > $10 $25 $40 $75 > $75 No Answer > MF 1 2 3 4 5 9 > None 1 3.05 2.29 2.24 1.71 1.30 2.83 > Equity 2 29.76 28.79 29.51 28.90 31.67 36.77 > Debt 3 31.18 32.64 34.31 35.65 37.59 33.15 > Hybrid 4 36.00 36.27 33.94 33.74 29.44 27.25 > Bank AC > None 1 46.54 54.01 59.1 62.17 67.67 60.87 > Current 2 24.75 24.4 25 24.61 24.02 21.09 > Savings 3 25.4 18.7 29 11.48 7.103 13.46 > No Answer 9 3.307 2.891 13.4 1.746 1.208 4.577 > > Thanks. > -- > Anupam. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-------------- next part -------------- A non-text attachment was scrubbed... Name: MF_Bank.png Type: image/png Size: 45142 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20230628/3e2d8941/attachment.png>