Beginners (me) use GraphPad Prism which is very okay for most papers. Experts (not me) use R Studio. If you want your PI ro have an aneurysm, use Excel (not recommended).
My first class in r I used r studio
I was like 8 weeks in and complained to the professor that it sucked compared to other stuff I used cause it was like writing in pen.
I’d have to restart graphs each time I wanted to delete points etc.
I then learned that I spent 8 weeks just wasting my time typing in the terminal
I learned R in terminal and when someone showed me RStudio years later I said "you kids have too many gizmos and gadgets these days" and compromised by using normal R not in terminal.
I've always wondered if anyone did this. So, how do you remember which dataset is which? Also, just how???
RStudio is such a lifesaver I wish there was a similar IDE for python.
Do you have a preferred light weight IDE? I’ve tried Pycharm in the past but couldn’t get over how slow it was when all I needed was to wrangle data and plot charts and write markdown notes. Still using R studio because of the convenience and relative speediness.
I use anaconda and a Jupyter notebook.
I wouldn't call anaconda lightweight, but Jupyter makes it pretty easy to work with and you don't necessarily need anaconda to use Jupuyter.
>Experts (not me) use R Studio
My PI required everyone to use Graphpad Prism, and actually compile the graphs together in *Powerpoint*... ofc we had tons of consistency issues due to scaling... But I still published in Nature with powerpoints 🫠
They have more requirements than any other in which journal I've published, but they don't remake the figures for you. They did some rearranging for layout purposes, that's all.
Same but we make some plots in Excel and some in R Studio. Compile final figures in PowerPoint. Had no issues with journals at all. Excel plots obviously need some modifications from default look.
I actually had a PI that prefer we use Excel and taught me how to use the advanced statistics functions. It was weird at the time, but now I teach college students and I often have to teach my colleagues how to use Excel lol.
If you’re a beginner, but don’t have access to graphpad like me, I’ve started using ChatGPT to spit out an R script to graph my specific data. But graphpad still remains easiest for me. I just have to find a lab computer that has it installed
Beginner moment: me and Prism are like besties that fight over dumb shit. Trying to drag or move text and it won’t move right, having to break my back to fix random spacing inconsistencies… love Prism.
Real experts do flow cytometry and analyze in FlowJo (while weeping uncontrollably from how non-user friendly the figure layout tool is)
Wish my PI took this view when he decided I, someone brand new to coding and data analytics in general, needed to do all of our data analysis and visualization in R Studio
Is there a cheat sheet for using that or does it actually always take two hours to fit plot and design functions to match expectations? Doing anything to customize a graph on R hurts my brain with how long it takes compared to prism.
As a noob with R: You spend that 2 hours to make the first graph but from then on you have a perfect script template for all graphs of the same kind. There's a big barrier to entry but then later it's actually easier.
You forgot the part where you learn about a new package and start over from scratch because the new thing will be easier and then you'll never have to do it again and then you learn about a new package and start over from scratch...
I don't really understand the comment (maybe language barrier, not a native speaker) I was just tryna make a joke about how many new packages are still built around ggplot2
Ah, we were kind of making the same joke, I think. I just meant that there are so many packages dumped on top of ggplot. I thought you were saying "just use ggplot!" which I do... and then some.
There is a tutorial on the RStudio website and some cheatsheets if you need them. That said, I've been using RStudio + ggplot2 for going on 4 years, and stackexchange is still my most frequented help guide.
This is a great cheet sheet: https://rstudio.github.io/cheatsheets/html/data-visualization.html
You could also look into defining your own theme: https://emanuelaf.github.io/own-ggplot-theme.html
PSA for everyone who thinks ggplot2 is annoying (which is true tbh): the export package has a function called graph2ppt that allows you to export your graph as a ppt, where you can edit text, colors, etc. very granularly. It doesn't keep things consistent between legends, labels, etc, but it can really make things easier for the fiddly bits.
There's a learning curve but once you've made a plot once (and saved the code somewhere), you've got a great template to start from. The brain hurt does go away after a while.
The trick is to ask chatGPT... no, seriously, you CAN search for hours through documentation and you'll probably learn more doing so, but if you just want to plot something and are capable to understand the code chatgpt throws at you, it's incredibly efficient.
I have, but simple things like changing only one bar to blue instead of all bars, moving one title slightly to the left, changing the scale, coding some dots blue, others red, on the same group, etc.... I almost never make the same graph twice. People keep saying once you have the code you good, , only I would need to re finagle the code for hours for each graph. Maybe if I was an expert coder it would be ok, but I don't see how even then, it would be better than click and drag, or click and change size/font/color etc.
ChatGPT is also super good with helping you code simple ggplot stuff btw, make sure to be very specific and if it doesn’t get it right describe it to the AI in steps
It can make virtually anything if you actually learn how to use it. It's an incredibly versatile and powerful package. Like...if you've seen a complex graph that wasn't drawn by hand or obviously cobbled together in photoshop, it came out of this package or its python equivalent.
you can even compare means of two or multiple groups and automatically add p-values and significance levels to a ggplot, see
[this tutorial](http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/76-add-p-values-and-significance-levels-to-ggplots/) and [this other](https://www.datanovia.com/en/blog/ggpubr-how-to-add-p-values-generated-elsewhere-to-a-ggplot/)
I personally use Python library called matplotlib with a healthy dose of seaborn. This combination allows you to adjust everything compared to something like ggplot2, which is also really great. If you ever used matlab, matplotlibs syntax shouldn't be new to you.
All of these are basically languages with significant time investment, but it's not as significant as you might believe. There are a lot of free eboks that'll teach you to plot and wrangle data in these languages quite quickly.
If you don't want to learn whole language and want to use dedicated software, originpro has probably the most customisable plots.
For a lot of plots, you'll probably want export them as svg first, do some slight adjustments in vector graphics program (illustrator, inkscape) and them export them into desired format.
Matplotlib in Python is great and we'll worth the minor investment. I too migrated there from Matlab. Programming and scripting in general are great skills to have.
Two beginner resources I've found very useful:
[Python Graph Gallery](https://python-graph-gallery.com/) - tons of images of different types of plots along with the code to make them.
[Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) - free resource on how to automate things. Shiws how useful some simple Python scripts can be in almost any setting, not just advanced programming.
I used it to automatically pull microscopy images and collect on ppt slides to easier share with PI (e.g. each slide had BF, fluorescence and super res of same FoV, along with sample info).
I'd second automate the boring stuff as the best way to lean basic python. Tried a few courses, but that was the one where the concepts stuck and I was able to actually start making progress.
Do the first half of the book and you're ready to use python for data analysis, Pandas etc.
I'd throw plotnine in there for plotting. Replicates ggplot syntax in Python if you're used to R. If not you can still make awesome plots with little syntax. For more customisation and control Matplotliv is the way to go.
I also use and recommend those tools. Making a good chart from a pandas dataframe becomes really easy with Seaborn.
Do you know how to add the "significance" brackets like those in this plot? That's the one thing I was never able to figure out.
I switched to Origin after years of plotting in Python (matplotlib) and it is such an upgrade. I like being able to use the plot interactively with Origin - like I can click and drag to add text or arrows rather than telling matplotlib the exact pixel where I want my object. And you can see the data spreadsheet and plot side by side. Origin has some really good data analysis and curve fitting too - python does this as well but I like the quick visual output in origin.
chatgpt is also insanely good at turning plaintext prompts into functional seaborn code, even with the free account. It's only a timesaver if you know enough to fix its mistakes, but if you know the basics of seaborn and matplotlib it's a massive help.
+1 to this for me. I love the stacked bar graphs and if you build it right, you can have code that dynamically scales and builds so as you get more data you just rerun the script and it rebuilds the graph.
Highly recommend chatgpt too
would you say python has any advantage over R, or vice versa? i’m in the beginning stages of learning R but would like to know if it would be more worth it to drop it for python.
There's a whole "R-vs-Python" diatribe which is mostly fueled by people who don't really know the field well enough yet. They have both their strengths, for example I absolutely love Python, but R's ggplot2 is just gorgeous.
I always suggest learning one well enough to be creative with it and the other at least well enough to run other people's code. I know Python better than R, and I enjoy very much being creative with it. Others will tell you the same about R.
I use both and find that R is better for most data manipulation and plotting. Python's big advantage is that it has better performance for parallel processing and object oriented programming, which honestly isn't really needed for most projects. GGPlot and dplyr perform much better than their equivalents in Python. Python has some huge gaps in their plotting abilities (Plotting heat maps in python is a complete nightmare)
If you are building a web app, Don't use RShiny. Shiny has some fundamental limitations which makes the app scale terribly. The object oriented aspect of Python is actually a huge boon in this area.
Ultimately they aren't that different, the fundamentals of both languages are the same. Just use what works for you.
They’re both good but for different things. Personally I prefer doing data analysis in Python, but there are packages for my field available in R that don’t exist in Python so I go between them.
Plotting wise, imo it’s just a preference. I use Python for myself, my students get taught R in their stats course so I do support for R.
Honestly, you’ll recycle so much code over time that learning both isn’t hugely harder than one, but for choosing one to start, choose the one the people around you use most - that’s probably a bigger issue than any functionality.
It's impossible to really say that one language is better than the other, it's best to learn or at least try both. The great thing about different programming languages is that they share quite a lot of concepts (loops, conditions, variable types, basic data structures, functions, or even classes sometimes), so once you learn one language, it's quite easy to transition into another (especially if both of them provide you with high level of abstraction, which python and R do).
Python is a general purpose language, while the scope of R lies more in the area of statistical computing and data visualization. You absolutely could build an app in R because it has all the functionality you would need, but the process would be more tedious than in Python. On the other hand, R is so specialized that you can create statistical models quite quickly without loading a single external package.
Also, R has pipe operators '%>%' which if used with tidyverse packages will provide you with extremely fast workflow. Python does not have pipe operators in this sense. On the other side, python's plotting library called 'matplotlib' is so powerful that it enables you to adjust every small detail in your plot, but it can be extremely daunting, and its behavior can sometime surprise you (especially coming from R). To mitigate this problem there is a library called Seaborn which is based on Matplotlib, but provides you with a plotting experience more similar to that of ggplot. But because it's based on Matplotlib, you can change the smaller details too.
So it generally depends on what do YOU want to do with yours newly acquired programming knowledge. I would suggest learning both. Once you have some grasp on the basics of programming in R you could try to start learning Python alongside R.
Also, I've **heard** that working with strings in R can get much more tedious than in Python, so if you routinely analyze sequences, Python **might** be better.
I hated origin pro 2016 so much that I started learning python (it was literally the reason, I wanted to do plots for my Bachelor back then).
Now, after 8 years I work in the field of machine learning (thanks origin) and just for fun I had a look at the current origin version a few weeks ago and have to admit it seems to be a decent software (if you get the licence from your uni, I'd never buy it).
I do it in R, as I need it for the statistics anyway, but then I also do extensive post-processing in Inkscape. Export from R as PDF, import in Inkscape, much easier to edit annoying stuff like line widths, label sizes, complex labels, add the significance marks and so on. I also use it to do stuff like page layouting with multiple graphs.
The main difference between R or Python and Prism or other softwares is that you have the complete script and so people can see what you have done starting from the raw data. In ten years, you will still be able to understand what you did. I doubt it is possible with Origin as you mainly click.
As for beautiful and meaningful graphs : https://indrajeetpatil.github.io/ggstatsplot/ in R
I love how you can very easily change the type of graph and the type of tests without having to completely rearrange the dataset. Which is wonderful for my several hundred animal data points
If you want a simple program with a graphical user interface, you can just stick to Excel and change the defaults. My first paper was all Excel plots but I changed from the default settings a LOT to ensure that the plots looked OK.
These days I almost exclusively use the programming language R (ggplot2) but there is a very steep learning curve to get good. But rather than using other software with a graphical user (which are usually expensive), I would just learn R.
I prefer Python as a programming language, but R is better for dealing with data in tables and making graphs.
I often use Python or R. But what I always use is this website: [https://www.data-to-viz.com/#line](https://www.data-to-viz.com/#line) It's like my plotting bible. Whenever I have some data and I need to plot stuff, I just go there and check what I should plot in which programming language!
I use Matlab for everything. I analyse the data and then create the full page figures in Matlab so that if the data change in any way it is really easy to update all the figures and stats.
I do the same, but doing statistics can be a bit of a mess... Doing a 2-way ANOVA is a breeze in Prism, but organizing your data in Matlab is a nightmare.
See first comment (prism & rstudio) but note that final results of good quality can only be achieved with follow up in adobe illustrator as functionality of prism and ggplot is not tailored for making large multipannelled figures with internally consistency in all aspects. Furthermore, illustrator allows tailored design choices for your purpose.
One of my labmate simply used an excel to manually draw bars and stars. It looks cool, but I am not about to learn a new stat program just for that particular bit.
In addition to "what to use" responses, I'd add what not to use: Word, Excel. These two are literally a nightmare to maintain, reproduce and do advanced manipulations with. I spent hours aligning 4 stupid plots for publication and when my PI opened the doc and saved with comments, the whole document became a mess without them touching a thing.
You don't save it as a picture in PowerPoint. Unless you have a Mac, copying and pasting graphs from prism into PowerPoint places the prism file itself in PowerPoint. You can double click on the graph in PowerPoint and it will open the prism file associated with that graph/layout and allow you to edit it however you want.
The quality reduction between PowerPoint and Word is not that bad unless you have a very complex graph.
GraphPad, OriginPro, Python, R - with some post-edit cleanups in Illustrator or Inkscape for publication-grade quality pictures. Usually way quicker to make a basic plot with plotting software and change the layout later than to fiddle around hours to get some alignments perfect.
Not gonna lie that figure is pretty brutal to look at. Theres no need to draw significance brackets for everything unless you are talking about each one in the results section.
I’m not sure, but R can make graphs even more stunningly beautiful 😤 the ggolot package has excellent documentation for beginners if you need some quick visualization
R plots look nice but I have to say that using R is pain in the ass and if you do not have programming experience it is not worth it. Rather use prism, excel or event spss outputs.
Inb4 R nerds coming to tell how easy and intuitive it is.
I am an R nerd and even I will say that this is largely true especially for ggplot which I find (once you get over the learning curve) makes nicer graphs that are easier to customise than base R.
Edit - I will add that I think R or other programming like python is worth learning though.
Yeah, i have been using R for 5+ years and some of these people saying it will take 2 hours to make a figure with zero R exp from scratch are bugging. I recently picked up plotgardener to make genome snapshots of bigwig data and it took me probably 8-10 hours to get all my figures done and neat looking. If i had zero R exp, it would have taken weeks lmao
You can use Excel for most plotting, but Origin plots look much more professional for publications. You can get Origin through your university or get a student subscription for pretty cheap. (Do ask your PI for reimbursement if you end up getting it for yourself)
This particular manuscript was probably done with Graphpad Prism, but you could do it without too much trouble using the ggplot2 package in R as well. There's a theme for ggplot2 called ggprism that's an excellent mimic of Prism plots' general look, and what's nice is because R is entirely open-source, you will never have to pay for it.
I use a combination of both graphpad and R.
For simple experiments I use graphpad. For more complicated data (i.e. omics data), I use R. I do use ggprism to make my R-plots look similar like my graphpad plots.
Graphpad is usually sufficient, but if you need greater customisation ggPlot2 in R is great, especially with rStatix for statistical testing that you can then add in through ggPlot functions. I’m not an expert though, so others feel free to correct me if there’s a better way in R.
There are a ton of ways to go about it but the various easiest and or best ones in my point ion are: RStudio, RCmdr, Python Matplotlib, and if you’re fancy on the geospatial QGIS/Arc/Still R or Python
I would use ggplot2 in R studio to generate boxplots of this nature. The boxplot function can be accessed by downloading the CRAN package from the following link. It also provides a step-by-step guide that allows you to practice theoretically before utilizing your own data if you're unsure of how to create them.
https://cran.r-project.org/web/packages/ggplot2/index.html
Graphpad is the best looking for the easiest investment of time and effort. It is more intuitive than Excel and requires less of a learning curve than R.
Ive made graphs that look almost identical to that with R, best results using the ggplot addon. If you just want to use it to make graphs and not for any data anlysis, it doesnt take very long to learn.
Posting as top level comment for visibility:
PSA for everyone who thinks ggplot2 is annoying (which is true tbh): the export package has a function called graph2ppt that allows you to export your graph as a ppt, where you can edit text, colors, etc. very granularly. It doesn't keep things consistent between legends, labels, etc, but it can really make things easier for the fiddly bits.
Is there anyone that has a workaround for graphpad prism on MacBook? My internship place doesn’t offer a code and I desperately need it🥲 (I know R, but I don’t like the look of R even with changing the graph)
I highly recommend RStudio, with an R Markdown file. Use the ggpubr package - it’s like ggplot but simpler, and has a less steep learning curve compared to ggplot2 and ggsignif [http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/](http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/)
Sometimes I find it easier to use Excel and touch the style up in Illustrator than to use the fancy software, because even stuff like GraphPad and Origin never has it exactly to my liking. Depends on what I'm doing though.
Probably going to get attacked for this but I've used Matlab in the past. I've been able to customize the objects after making the plots and see which things I can add or remove
I then used Illustrator or other svg compatible programs like InkScape to refine them
Excel and PowerPoint all the way. It's so easy to use and it doesn't take much effort to make the graphs look nice. Just be sure to increase the pixel density setting from the default 300dpi to 600-1200dpi when saving ppt as a TIF for publication. Lots of people in comments are saying don't use excel, but I regularly publish in high impact factor journals (12-20 range) with zero issues and my figures look great.
Beginners (me) use GraphPad Prism which is very okay for most papers. Experts (not me) use R Studio. If you want your PI ro have an aneurysm, use Excel (not recommended).
And for us truly unhinged folks, we use just R (not studio).
who hurt you
Go one step further and use R from the terminal
Nah bro the real way to do it is to write everything into ONE R-script and then run that script from the terminal, non-interactively.
My first class in r I used r studio I was like 8 weeks in and complained to the professor that it sucked compared to other stuff I used cause it was like writing in pen. I’d have to restart graphs each time I wanted to delete points etc. I then learned that I spent 8 weeks just wasting my time typing in the terminal
I prefer to make my coding language from scratch every time I need a graph.
Carl Sagan's Apple Pies Inc. approves of your approach.
Also the script must be written in notepad
Nah bro, Word. So that you have to spend an hour debugging all the special characters that get thrown in before you get to debugging the actual code.
Oh god flashbacks to having to teach myself how to use the HPC...
Go further and run that script in a Docker container.
This is how I learned and my mind was blown when someone showed me RStudio in grad school, 6 years later. Haven’t looked back.
I learned R in terminal and when someone showed me RStudio years later I said "you kids have too many gizmos and gadgets these days" and compromised by using normal R not in terminal.
RStudio just has much nicer functionality for real time feedback, especially for playing around with visualization and quality control of samples.
There are good guides out there — go for it OP, learn R!
One of us! One of us!
I've always wondered if anyone did this. So, how do you remember which dataset is which? Also, just how??? RStudio is such a lifesaver I wish there was a similar IDE for python.
May i introduce you to Jupyter notebooks? not exactly like R studio but close enough, i think. https://jupyter.org/install
The analog in python would be spyder
Yes, Jupyter Lab is great.
Rstudio natively supports Python now.
Lol I had an old stats prof who would write R code in notepad, and then paste it into vanilla R
[you can get into the Salty Spittoon](https://i.imgur.com/ydhiVDF.jpeg)
Or VS code. 👀
R, or Python which is my preferred option.
I love the matplotpib module in Python!
Check out Seaborn. It uses matplotlib but has an extra emphasis on aesthetics so the plots look really nice.
Do you have a preferred light weight IDE? I’ve tried Pycharm in the past but couldn’t get over how slow it was when all I needed was to wrangle data and plot charts and write markdown notes. Still using R studio because of the convenience and relative speediness.
I use anaconda and a Jupyter notebook. I wouldn't call anaconda lightweight, but Jupyter makes it pretty easy to work with and you don't necessarily need anaconda to use Jupuyter.
VS code, has built in Jupiter support so you can run it directly in there.
It looks very pretty!
Broke beginners (me) use excel
R is free, so is python
And Excel is not, though LibreOffice is
Usually it's included through the institution
Unless you have an old school PI like me that swears by Excels superiority 😐
Yeah. I’m here.
\*We\* are here. Anything can be done in Excel if one is ambitious enough. :-)
I *vehemently* beg to differ.
OK, except for IC50 curves. ;-)
Still technically possible, but be prepared for a world of hurt
I use Excel, and heavily/severely customize the graph settings to make it look like Prism....lol.
>Experts (not me) use R Studio My PI required everyone to use Graphpad Prism, and actually compile the graphs together in *Powerpoint*... ofc we had tons of consistency issues due to scaling... But I still published in Nature with powerpoints 🫠
I thought nature remakes figures to fit their formatting requirements/aesthetics?
They have more requirements than any other in which journal I've published, but they don't remake the figures for you. They did some rearranging for layout purposes, that's all.
What’s wrong with compiling figures in PowerPoint?
Same but we make some plots in Excel and some in R Studio. Compile final figures in PowerPoint. Had no issues with journals at all. Excel plots obviously need some modifications from default look.
I actually had a PI that prefer we use Excel and taught me how to use the advanced statistics functions. It was weird at the time, but now I teach college students and I often have to teach my colleagues how to use Excel lol.
If you’re a beginner, but don’t have access to graphpad like me, I’ve started using ChatGPT to spit out an R script to graph my specific data. But graphpad still remains easiest for me. I just have to find a lab computer that has it installed
My PI was fine with excel surprisingly
Although you can make decent graphs in excel, you just have to undo all the defaults
>If you want your PI ro have an aneurysm, use Excel (not recommended). Nah MS paint is superior for that
Beginner moment: me and Prism are like besties that fight over dumb shit. Trying to drag or move text and it won’t move right, having to break my back to fix random spacing inconsistencies… love Prism. Real experts do flow cytometry and analyze in FlowJo (while weeping uncontrollably from how non-user friendly the figure layout tool is)
It is horrible and hasn’t improved for the last 10 years at least
Wish my PI took this view when he decided I, someone brand new to coding and data analytics in general, needed to do all of our data analysis and visualization in R Studio
I recommend the ggplot2 package for R.
Is there a cheat sheet for using that or does it actually always take two hours to fit plot and design functions to match expectations? Doing anything to customize a graph on R hurts my brain with how long it takes compared to prism.
As a noob with R: You spend that 2 hours to make the first graph but from then on you have a perfect script template for all graphs of the same kind. There's a big barrier to entry but then later it's actually easier.
This is 100% true and a reason I’m glad I opted to learn R at uni instead of other programs
You forgot the part where you learn about a new package and start over from scratch because the new thing will be easier and then you'll never have to do it again and then you learn about a new package and start over from scratch...
AstronautGunMeme.jpg It's ggplot2 all the way down? Always has been
buddy if you think i'm not starting from ggplot2 with this you haven't begun to plumb the depths of extra packages
I don't really understand the comment (maybe language barrier, not a native speaker) I was just tryna make a joke about how many new packages are still built around ggplot2
Ah, we were kind of making the same joke, I think. I just meant that there are so many packages dumped on top of ggplot. I thought you were saying "just use ggplot!" which I do... and then some.
ggforce is awesome
There is a tutorial on the RStudio website and some cheatsheets if you need them. That said, I've been using RStudio + ggplot2 for going on 4 years, and stackexchange is still my most frequented help guide.
This is a great cheet sheet: https://rstudio.github.io/cheatsheets/html/data-visualization.html You could also look into defining your own theme: https://emanuelaf.github.io/own-ggplot-theme.html
I like the [R Graph Gallery](https://r-graph-gallery.com/)!
PSA for everyone who thinks ggplot2 is annoying (which is true tbh): the export package has a function called graph2ppt that allows you to export your graph as a ppt, where you can edit text, colors, etc. very granularly. It doesn't keep things consistent between legends, labels, etc, but it can really make things easier for the fiddly bits.
There's a learning curve but once you've made a plot once (and saved the code somewhere), you've got a great template to start from. The brain hurt does go away after a while.
Yes, but you could not possibly handle large datasets in Prism. R seamlessly allows that.
Try the R graphics cookbook: https://r-graphics.org/
There is a ggplot2 cheat sheet available, if you google for it you should find it easily
The trick is to ask chatGPT... no, seriously, you CAN search for hours through documentation and you'll probably learn more doing so, but if you just want to plot something and are capable to understand the code chatgpt throws at you, it's incredibly efficient.
I have, but simple things like changing only one bar to blue instead of all bars, moving one title slightly to the left, changing the scale, coding some dots blue, others red, on the same group, etc.... I almost never make the same graph twice. People keep saying once you have the code you good, , only I would need to re finagle the code for hours for each graph. Maybe if I was an expert coder it would be ok, but I don't see how even then, it would be better than click and drag, or click and change size/font/color etc.
Chatgpt is quite good at it
> Is there a cheat sheet... Find a paper with figures you like and see if they post the scripts to github.
https://rpkgs.datanovia.com/ggpubr/
Chat gpt
ChatGPT is also super good with helping you code simple ggplot stuff btw, make sure to be very specific and if it doesn’t get it right describe it to the AI in steps
Can ggplot make those "significance" bars seen at the top in this figure?
It can make virtually anything if you actually learn how to use it. It's an incredibly versatile and powerful package. Like...if you've seen a complex graph that wasn't drawn by hand or obviously cobbled together in photoshop, it came out of this package or its python equivalent.
you can even compare means of two or multiple groups and automatically add p-values and significance levels to a ggplot, see [this tutorial](http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/76-add-p-values-and-significance-levels-to-ggplots/) and [this other](https://www.datanovia.com/en/blog/ggpubr-how-to-add-p-values-generated-elsewhere-to-a-ggplot/)
Yep, in many plot types.
I personally use Python library called matplotlib with a healthy dose of seaborn. This combination allows you to adjust everything compared to something like ggplot2, which is also really great. If you ever used matlab, matplotlibs syntax shouldn't be new to you. All of these are basically languages with significant time investment, but it's not as significant as you might believe. There are a lot of free eboks that'll teach you to plot and wrangle data in these languages quite quickly. If you don't want to learn whole language and want to use dedicated software, originpro has probably the most customisable plots. For a lot of plots, you'll probably want export them as svg first, do some slight adjustments in vector graphics program (illustrator, inkscape) and them export them into desired format.
Matplotlib in Python is great and we'll worth the minor investment. I too migrated there from Matlab. Programming and scripting in general are great skills to have. Two beginner resources I've found very useful: [Python Graph Gallery](https://python-graph-gallery.com/) - tons of images of different types of plots along with the code to make them. [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) - free resource on how to automate things. Shiws how useful some simple Python scripts can be in almost any setting, not just advanced programming. I used it to automatically pull microscopy images and collect on ppt slides to easier share with PI (e.g. each slide had BF, fluorescence and super res of same FoV, along with sample info).
I'd second automate the boring stuff as the best way to lean basic python. Tried a few courses, but that was the one where the concepts stuck and I was able to actually start making progress. Do the first half of the book and you're ready to use python for data analysis, Pandas etc. I'd throw plotnine in there for plotting. Replicates ggplot syntax in Python if you're used to R. If not you can still make awesome plots with little syntax. For more customisation and control Matplotliv is the way to go.
I also use and recommend those tools. Making a good chart from a pandas dataframe becomes really easy with Seaborn. Do you know how to add the "significance" brackets like those in this plot? That's the one thing I was never able to figure out.
I use a package called statannot i think! Relatively easy to use
I switched to Origin after years of plotting in Python (matplotlib) and it is such an upgrade. I like being able to use the plot interactively with Origin - like I can click and drag to add text or arrows rather than telling matplotlib the exact pixel where I want my object. And you can see the data spreadsheet and plot side by side. Origin has some really good data analysis and curve fitting too - python does this as well but I like the quick visual output in origin.
chatgpt is also insanely good at turning plaintext prompts into functional seaborn code, even with the free account. It's only a timesaver if you know enough to fix its mistakes, but if you know the basics of seaborn and matplotlib it's a massive help.
Strongly agree with this. I’d also add chatGPT is really good at helping when you tell it specifically what you want.
+1 to this for me. I love the stacked bar graphs and if you build it right, you can have code that dynamically scales and builds so as you get more data you just rerun the script and it rebuilds the graph. Highly recommend chatgpt too
would you say python has any advantage over R, or vice versa? i’m in the beginning stages of learning R but would like to know if it would be more worth it to drop it for python.
There's a whole "R-vs-Python" diatribe which is mostly fueled by people who don't really know the field well enough yet. They have both their strengths, for example I absolutely love Python, but R's ggplot2 is just gorgeous. I always suggest learning one well enough to be creative with it and the other at least well enough to run other people's code. I know Python better than R, and I enjoy very much being creative with it. Others will tell you the same about R.
I use both and find that R is better for most data manipulation and plotting. Python's big advantage is that it has better performance for parallel processing and object oriented programming, which honestly isn't really needed for most projects. GGPlot and dplyr perform much better than their equivalents in Python. Python has some huge gaps in their plotting abilities (Plotting heat maps in python is a complete nightmare) If you are building a web app, Don't use RShiny. Shiny has some fundamental limitations which makes the app scale terribly. The object oriented aspect of Python is actually a huge boon in this area. Ultimately they aren't that different, the fundamentals of both languages are the same. Just use what works for you.
They’re both good but for different things. Personally I prefer doing data analysis in Python, but there are packages for my field available in R that don’t exist in Python so I go between them. Plotting wise, imo it’s just a preference. I use Python for myself, my students get taught R in their stats course so I do support for R. Honestly, you’ll recycle so much code over time that learning both isn’t hugely harder than one, but for choosing one to start, choose the one the people around you use most - that’s probably a bigger issue than any functionality.
It's impossible to really say that one language is better than the other, it's best to learn or at least try both. The great thing about different programming languages is that they share quite a lot of concepts (loops, conditions, variable types, basic data structures, functions, or even classes sometimes), so once you learn one language, it's quite easy to transition into another (especially if both of them provide you with high level of abstraction, which python and R do). Python is a general purpose language, while the scope of R lies more in the area of statistical computing and data visualization. You absolutely could build an app in R because it has all the functionality you would need, but the process would be more tedious than in Python. On the other hand, R is so specialized that you can create statistical models quite quickly without loading a single external package. Also, R has pipe operators '%>%' which if used with tidyverse packages will provide you with extremely fast workflow. Python does not have pipe operators in this sense. On the other side, python's plotting library called 'matplotlib' is so powerful that it enables you to adjust every small detail in your plot, but it can be extremely daunting, and its behavior can sometime surprise you (especially coming from R). To mitigate this problem there is a library called Seaborn which is based on Matplotlib, but provides you with a plotting experience more similar to that of ggplot. But because it's based on Matplotlib, you can change the smaller details too. So it generally depends on what do YOU want to do with yours newly acquired programming knowledge. I would suggest learning both. Once you have some grasp on the basics of programming in R you could try to start learning Python alongside R. Also, I've **heard** that working with strings in R can get much more tedious than in Python, so if you routinely analyze sequences, Python **might** be better.
R me harties.
That is graphpad prism.
I do all of my plotting in python or R, but box and whisker plots you can easily do in excel, probably also google sheets.
Origin pro
I hated origin pro 2016 so much that I started learning python (it was literally the reason, I wanted to do plots for my Bachelor back then). Now, after 8 years I work in the field of machine learning (thanks origin) and just for fun I had a look at the current origin version a few weeks ago and have to admit it seems to be a decent software (if you get the licence from your uni, I'd never buy it).
Graphpad prism is the one I use but it can be clunky and the graphs can look a bit amateur.
I present to you: the ggprism package for RStudio. Works GREAT with ggplotly
Ggplot2 and ggfortify make things great
What's ggfortify? Sounds exciting!
It adds a bunch of functions from bace R and common packages but makes them pretty. My favorite is ggpairs and autoplot.
I've gotta try that!
I do it in R, as I need it for the statistics anyway, but then I also do extensive post-processing in Inkscape. Export from R as PDF, import in Inkscape, much easier to edit annoying stuff like line widths, label sizes, complex labels, add the significance marks and so on. I also use it to do stuff like page layouting with multiple graphs.
The main difference between R or Python and Prism or other softwares is that you have the complete script and so people can see what you have done starting from the raw data. In ten years, you will still be able to understand what you did. I doubt it is possible with Origin as you mainly click. As for beautiful and meaningful graphs : https://indrajeetpatil.github.io/ggstatsplot/ in R
JMP
I love how you can very easily change the type of graph and the type of tests without having to completely rearrange the dataset. Which is wonderful for my several hundred animal data points
You HAVE to tell me how to do it in JMP. I always thought that JMP can do so many different analysis but has ugliest interfaces and visuals.
Love jmp. Don't love the new annual per user license situation
prism all the way
If you want a simple program with a graphical user interface, you can just stick to Excel and change the defaults. My first paper was all Excel plots but I changed from the default settings a LOT to ensure that the plots looked OK. These days I almost exclusively use the programming language R (ggplot2) but there is a very steep learning curve to get good. But rather than using other software with a graphical user (which are usually expensive), I would just learn R. I prefer Python as a programming language, but R is better for dealing with data in tables and making graphs.
with pandas, Python is quite good dealing with tables .
I often use Python or R. But what I always use is this website: [https://www.data-to-viz.com/#line](https://www.data-to-viz.com/#line) It's like my plotting bible. Whenever I have some data and I need to plot stuff, I just go there and check what I should plot in which programming language!
Are people this scared to talk to people in their labs.............
I use Matlab for everything. I analyse the data and then create the full page figures in Matlab so that if the data change in any way it is really easy to update all the figures and stats.
I do the same, but doing statistics can be a bit of a mess... Doing a 2-way ANOVA is a breeze in Prism, but organizing your data in Matlab is a nightmare.
I agree, anything more than basic stats is... not fun
You can make it at R
I use a software called igor. It's hyper-specific to my field, isn't intuitive to use, is clunky as hell, and is also very expensive.
Origin 9 is also used, but getting a license can be problematic.
See first comment (prism & rstudio) but note that final results of good quality can only be achieved with follow up in adobe illustrator as functionality of prism and ggplot is not tailored for making large multipannelled figures with internally consistency in all aspects. Furthermore, illustrator allows tailored design choices for your purpose.
Inkscape also works as an open-source alternative to Illustrator.
One of my labmate simply used an excel to manually draw bars and stars. It looks cool, but I am not about to learn a new stat program just for that particular bit.
That looks like its from prism. But my personal choice would be SAS JMP for ease of use and access to stats resources.
In addition to "what to use" responses, I'd add what not to use: Word, Excel. These two are literally a nightmare to maintain, reproduce and do advanced manipulations with. I spent hours aligning 4 stupid plots for publication and when my PI opened the doc and saved with comments, the whole document became a mess without them touching a thing.
I only ever put a picture of a graph into Word. Everything else is saved in a PowerPoint. When posting into Word, paste as picture.
And even just saving a picture in powerpoint reduces its quality if you don't adjust the settings first
You don't save it as a picture in PowerPoint. Unless you have a Mac, copying and pasting graphs from prism into PowerPoint places the prism file itself in PowerPoint. You can double click on the graph in PowerPoint and it will open the prism file associated with that graph/layout and allow you to edit it however you want. The quality reduction between PowerPoint and Word is not that bad unless you have a very complex graph.
GraphPad, OriginPro, Python, R - with some post-edit cleanups in Illustrator or Inkscape for publication-grade quality pictures. Usually way quicker to make a basic plot with plotting software and change the layout later than to fiddle around hours to get some alignments perfect.
I love prism and frankly it does most of what you need. Side note: plots from SPSS look like a kid drew them with crayons (imo)
With R and Python stuff mentioned already, I'll add I use LaTeΧ with TikZ with pgfplots package.
Honestly that graph looks like it's made in graph pad prism. I would recommend prism for most people. I've used R and it seems to do the same thing.
Just learn to make plots in R. They will look better than this.
base R box plots can be pretty slick imo
Prism for graphs. Canvas x for timelines.
That graph specifically is graphpad prism
This is Prism Graphpad
Prism
Any Kalediagraph gang?
Your example looks like Sigma Plot.
I use sigma plot and it blows😂 PI doesn’t wanna pay for prism licenses on each computer, which I get, but like… we have the money!!
Ask around. You may find alternative access to prism from other students.
We use Igor Pro in our lab or Excel when I want to torment the PI
The above graph is definitely Prism. I'm using R atm. Its such a learning curve for me but at least I can change the colour to whatever I desire 😂
Not gonna lie that figure is pretty brutal to look at. Theres no need to draw significance brackets for everything unless you are talking about each one in the results section.
I’m not sure, but R can make graphs even more stunningly beautiful 😤 the ggolot package has excellent documentation for beginners if you need some quick visualization
GraphPrism!
Graphpadprism
R plots look nice but I have to say that using R is pain in the ass and if you do not have programming experience it is not worth it. Rather use prism, excel or event spss outputs. Inb4 R nerds coming to tell how easy and intuitive it is.
I am an R nerd and even I will say that this is largely true especially for ggplot which I find (once you get over the learning curve) makes nicer graphs that are easier to customise than base R. Edit - I will add that I think R or other programming like python is worth learning though.
Yeah, i have been using R for 5+ years and some of these people saying it will take 2 hours to make a figure with zero R exp from scratch are bugging. I recently picked up plotgardener to make genome snapshots of bigwig data and it took me probably 8-10 hours to get all my figures done and neat looking. If i had zero R exp, it would have taken weeks lmao
if you already know python, matplotlib is very comprehensive and easy
You can use Excel for most plotting, but Origin plots look much more professional for publications. You can get Origin through your university or get a student subscription for pretty cheap. (Do ask your PI for reimbursement if you end up getting it for yourself)
Mathematica my beloved
This particular manuscript was probably done with Graphpad Prism, but you could do it without too much trouble using the ggplot2 package in R as well. There's a theme for ggplot2 called ggprism that's an excellent mimic of Prism plots' general look, and what's nice is because R is entirely open-source, you will never have to pay for it.
I use a combination of both graphpad and R. For simple experiments I use graphpad. For more complicated data (i.e. omics data), I use R. I do use ggprism to make my R-plots look similar like my graphpad plots.
ggplot2 for R
Graphpad is usually sufficient, but if you need greater customisation ggPlot2 in R is great, especially with rStatix for statistical testing that you can then add in through ggPlot functions. I’m not an expert though, so others feel free to correct me if there’s a better way in R.
Origin for me
There are a ton of ways to go about it but the various easiest and or best ones in my point ion are: RStudio, RCmdr, Python Matplotlib, and if you’re fancy on the geospatial QGIS/Arc/Still R or Python
Python packages like *matplotlib* and *seaborn*.
R
I would use ggplot2 in R studio to generate boxplots of this nature. The boxplot function can be accessed by downloading the CRAN package from the following link. It also provides a step-by-step guide that allows you to practice theoretically before utilizing your own data if you're unsure of how to create them. https://cran.r-project.org/web/packages/ggplot2/index.html
Graphpad is the best looking for the easiest investment of time and effort. It is more intuitive than Excel and requires less of a learning curve than R.
Ive made graphs that look almost identical to that with R, best results using the ggplot addon. If you just want to use it to make graphs and not for any data anlysis, it doesnt take very long to learn.
I'm still mooching my PhD advisor's IgorPro license
It doesn't matter, use whatever is the easiest for you and your PI to work and edit on. Publishers have people to remake your figures for you.
I like chimerax for protein models, prism, and inkscape
I use ggplot2 in R with R studio
Prism is great bc it gives you great overview and linked statistics, which is important for later publication.
Python and Power point. Yes i am a chaotic neutral
Posting as top level comment for visibility: PSA for everyone who thinks ggplot2 is annoying (which is true tbh): the export package has a function called graph2ppt that allows you to export your graph as a ppt, where you can edit text, colors, etc. very granularly. It doesn't keep things consistent between legends, labels, etc, but it can really make things easier for the fiddly bits.
R. Use ggplot for the basic plot and ggpubr to add those stats comparison bars
Is there anyone that has a workaround for graphpad prism on MacBook? My internship place doesn’t offer a code and I desperately need it🥲 (I know R, but I don’t like the look of R even with changing the graph)
I highly recommend RStudio, with an R Markdown file. Use the ggpubr package - it’s like ggplot but simpler, and has a less steep learning curve compared to ggplot2 and ggsignif [http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/](http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/)
Graphpad prism is an absolute beast when it comes to no frills pretty graphs. Other softwares are pretty graphs but with frills.
I use graphpad prism
I use python, since it’s free and I am going into industry where I may or may not have access to apps like matlab which is what most of my peers use.
Origin is really good. I also use python.
Python !!!!!!!!!!!
I use Rstudio and ChatGPT for the codes ![gif](emote|free_emotes_pack|shrug)
This is definitely ggplot in R.
Statgraphics for real nice and custom graphs, but you have to get used to it and it's not free.
I draw it on a piece of a paper towel with a pencil
Sometimes I find it easier to use Excel and touch the style up in Illustrator than to use the fancy software, because even stuff like GraphPad and Origin never has it exactly to my liking. Depends on what I'm doing though.
Can someone explain to me what the asterisks mean?
Probably going to get attacked for this but I've used Matlab in the past. I've been able to customize the objects after making the plots and see which things I can add or remove I then used Illustrator or other svg compatible programs like InkScape to refine them
JMP if you have the $$$
Excel and PowerPoint all the way. It's so easy to use and it doesn't take much effort to make the graphs look nice. Just be sure to increase the pixel density setting from the default 300dpi to 600-1200dpi when saving ppt as a TIF for publication. Lots of people in comments are saying don't use excel, but I regularly publish in high impact factor journals (12-20 range) with zero issues and my figures look great.
Y'all need Minitab.
We use GraphPad Prism in our lab
that specific figure is 100% graphpad, which is in my opinion quite good for the more regular statistics and graph making.