I know Excel is wonky sometimes and it is from Microsoft, so it comes with a whole lot of bullshit around it, but in terms of available features it is quite solid nowadays.
Can you do a plot a hundred times with a hundred different datasets with these templates? Without having to apply such template to each file, just pointing to the folder with them...
To me that's the whole point of programming, you can automatically do a thing and it doesn't matter if it took an hour to write the code. Once you have it, you point it to the folder with all datasets, iterate over while you drink a coffee and then you have the hundreds of plots.
You'll get used to it and it will only take a couple of minutes. And I honestly believe nothing comes close to ggplot2 in terms of quality, and I don't use R for anything else.
Plots are typical composed, and when writing a paper (I insert them mostly into TeX publications) I do find the quality of the resulting plot is just so much more refined.
Seaborn is indeed closer and was definitely inspired by ggplot2 in some areas, but IMHO, it's still not 100% there visually. I'm very much a Python user and would love it to be, but when I'm, let's say, publishing a book, I'd always go back to ggplot2 - when preparing a paper for a lab class, seaborn is probably fine.
It's a lot more like Seaborn. It produces gorgeous plots with a lovely syntax that is quick and easy to use, but it's not a full drawing toolkit like matplotlib.
If I need the plot to have a very precise aesthetic, mpl is great. But if I want a high quality statistical plot that looks great. ggplot2 will do it in about 2 seconds. See also plotnine.
I have no idea how op thinks they could make a decent histogram any quicker than ggplot(data) + geom_histogram(x= x). I mean you don't even have to leave your shell/editor or extract the SQL into CSV.
Did anyone read the grammar of graphics paper from Hadley Wickham? I kind of enjoyed it a lot, and got to know what's the power source really. I'm amazed so many software libraries came to reinvent compossibility in such unergonomic ways... But it's nice to have options.
I think I might prefer base R over matplotlib though... :p