Closed zeileis closed 8 months ago
Also not sure about plot2
. To me, it suggests that it either wants to supersede plot()
, or that its ultimate goal is to cover the feature set of ggplot2
. Neither of which is quite the case.
I think I like baseplot
; matches basetheme
. tinyplot
would also be an option, but I think I like that less.
I don't have great original ideas for package names, sorry. Will come back if I think of one.
Thanks, Vincent, very useful!
plot2
: I first thought that the name should convey the design for 2-way plots. But meanwhile the scope is somewhat broader. I didn't see the ggplot2
similarity but I agree that this might lead to misunderstandings.baseplot
: I also like the match with basetheme
.tinyplot
: Good idea. I also like it but probably not as much as baseplot
.And finally I also have to say that I'm not very creative/successful when it comes to package names...
Thanks for kicking this discussion off @zeileis. I agree that this is something we need to resolve before a CRAN submission.
I'm not wedded to plot2
and your pushback is certainly shifting my priors... But allow me to play the role of defence here for a moment. In my view, plot2
has some key arguments in its favour:
hist2()
offers itself as the natural and consistent function call.ggplot2
is a feature, not a bug. I certainly don't envisage that we will support all, or even most, of what ggplot2
does. But there is a non-trivial set of operations that I think we could cover that are (quote unquote) easy with ggplot2
, but finicky with base plot. I would like plot2
to serve as a natural alternative for this set of functions—grouped plots being the exemplar—and if some reflected I had one more point that escapes me for the moment and I have to run to pick up the kids. But will leave these two for the moment. For the record, I too prefer baseplot
among the alternatives.
(Maybe we put it to popular vote on Tiwtter/Mastodon?)
Thanks, Grant, interesting! Just a couple of comments:
...(~ x, data, type = "....")
where type
could be "density"
or "histogram"
.plot2
a la ggplot2
branding will work well. My gut feeling is to stay away from it, though.FWIW, all the views I expressed above were (extremely) weakly held. I find your arguments reasonably compelling, and in the end I don’t think it matters that much.
plot2 might be seen by people who read the alphabetical cran index.
Feels like you should think about the above for a bit and prioritize your own vibes rather than a Twitter poll.
+1 Definitely your call, Grant @grantmcdermott .
Thanks both. I don't want this to be a unilateral decision, so will perhaps ask a handful other follks instead of a poll. Either way, will mull on it a bit more this weekend.
I've independently been thinking about names for plotting functions, as part of redesigning quantmod's charting functionality. I'm leaning toward chart()
for that, but have also considered graph()
. Seems like the latter could be a contender here.
baseplot
sounds limiting to me, as in "if that is the base what buids on top of it" ?
tinyplot
works for me because of the zero depenencies, but that may not be everybody's cup of tea (== loosers!) :wink:
But they key feature really is that it is a "pure" and "base only" plot() package. So how about pplot
as a shorthand for pureplot
? Or with a wink maybe bip
for 'batteries-included-plot' as nothing else is needed? It needs to be short and concise and descriptive.
Bubbling this back up as there is chatter of a CRAN release come 2024. plot2
is really dominated by any of the alternatives so pretty-please pick something ... Just let us know as
will mull on it a bit more this weekend.
was by now a few weekends ago :wink:
plot2()
arose as an attempt to re-design plot()
to be more general while remaining in the framework of base R graphics. In a way, similar to the transition from the original ggplot
to ggplot2
.
Echoing @eddelbuettel I think it is time to release plot2
to CRAN.
Thanks for the prompts :-)
To be clear: This is something I'm hoping to decide pretty soon, as one of the few remaining above-the-line tasks for CRAN submission. https://github.com/grantmcdermott/plot2/issues/108
Hey all, I've discovered this package literally 10 minutes ago as I saw @vincentarelbundock tweet on it. My 2 cents, for what they're worth: I think I'd prefer tinyplot.
I think it'll make googling and discussing it easier than baseplot which could lead to quiproquos (do you mean "baseplot" or "base plot()"? It also conveys the idea of being a lightweight package very well.
Thanks for all the suggestions and thoughtful discussion, everyone. I want to finalise this package name ASAP, so we can move ahead with CRAN submission. Here are my summary thoughts based on all the feedback so far:
IMO the package name is now a straight shot between two options: plot2
vs tinyplot
.
plot2
Pros
par2()
, hist2()
, barplot2()
, etc. It's easy to remember (mnemonic consistency), as well as adapt existing vanilla plot
code to.Cons
baseplot
, which is one reason why it's dropped out of the running for me.)tinyplot
Pros
plot
). But I think there's momentum behind the "tiny" prefix now, especially with other packages like Vincent's tinytable
, so that it can successfully convey both concepts simultaneously.Cons
plot2
. I mean, we can use tinyplot()
, tinyhist()
, tinypar()
, etc. But I have a preference for keeping function names shorter if possible. OTOH we could use a shorter "t" prefix instead (or as an alias): tplot()
, thist()
, tpar()
. These look uglier to me and I haven't checked the risk of namespace conflicts. But it's an option. I plan to make a decision by the end of the week. So, last call for any additional inputs if anyone has any!
Nothing is easy or perfect. And note that you could separate package name and function names. But tinytable
and tt()
is damn fine example. Maybe tinyplot()
and even tp()
?
At the end nothing really matters. Don't overthink it. Pick one, move on.
I just came across this issue and wanted to make a plea for informative package/function names. With copy/paste and autocomplete dominant, the typable length of functions is just not really a big issue these days. Readability of code is. The 'tiny...' family of names seems like a clear winner here.
[I wonder whether the package could not be called 'tiny' and the the functions retain their base forms (e.g. tiny::plot()
). I think enough people don't use explicit namespaces that that may become confusing though.]
I think calling the package only tiny
would suggest something far too broad because there are already tinytest
, tinytable
, tinytex
, etc. So tiny
only might convey the erroneous impression that it is a sort of meta package.
Also, using the fully-qualified names adds an unnecessary overhead if you have already imported a function in a NAMESPACE. So at least in package code the ::
should better be avoided.
Not strong views here but I agree with Achim that the tiny
prefix may be too broad. plot2
is nice. I also agree with @eddelbuettel wise words: Your choice is the right choice!
Just to clarify: tinyplot
is ok. But just tiny
with function tiny::plot
etc. would be a bad choice.
Regarding plot2
vs. tinyplot
I think that both have advantages and disadvantages and I don't have a strong preference. Whatever Grant picks will be the right choice :+1:
Just to weigh in again here. Grant has been magnanimous in opening this to discussion, and has presented pros and cons.
I am strongly persuaded that the tiny
attribute is not as important semantically as the 2
, indicating that plot2
extends plot
as a new generation of base-R graphics.
Hi all. Thanks for bearing with me and providing such constructive feedback.
After much thought, I've decided to rename the package to tinyplot. The main function will similarly be called tinyplot()
, though I will also provide a "no vowels" alias plt()
to accommodate those who would like a shorthand. I know that aliases can be tricky from a documentation standpoint, but I feel that it's worth it in this case. I also like the fact that the no vowel alias provides a consistent---one might even say "tiny"--- syntax for other plot types that we'd like to support in the future: tinyhist()
<-> hst()
, tinybarplot()
<-> brplt()
, etc.
Summarising:
plot2()
=> tinyplot()
/ plt()
tinyhist()
/ hst()
etc. par2()
=> tpar()
Other comments:
tplot()
and tp()
. But having looked into it, these two have a much higher chance of causing namespace clashes with existing packages. The latter is also potentially confusing, since I need to preserve tpar()
(replaces par2
) for setting global parameters.I'll try to push through the necessary changes in the codebase and repo sometime this week. This will correspond to v0.0.5 of the package, which will be one of the last dev releases before we submit to CRAN.
Thanks again for everyone's help and input!
Yay! Welcome to the world tinyplot
!
Tired of the many dependencies of ggplot2 I googled "tinyplot", and it lead me to your package. I understand that you are not aiming for a complete replacement of all ggplot2 features, but I do hope that you are aiming to be the tiny alternative. Is there an ETA on the CRAN release?
@arnejohannesholmin Tracking in this milestone. Goal ETA is end of this month. (Fingers crossed.)
Please reconsider. tinyplot
implies that you are producing a very small plot. That’s not what you want. The name needs to connote something related to “lean” or “base”. And short names are better, e.g. bplot
.
Sorry @harrelfe, but that ship has sailed. The SEO false positives case against “base” & co. were pretty well motivated IMO. Note too that the plt()
alias is always there if you want a shorthand alternative for the main function call.
PSA: The package is now on CRAN: https://cran.r-project.org/web/packages/tinyplot/index.html
I have been wondering whether
plot2()
is the best and/or most intuitive name for the package and its main function. It's certainly "ok" but I'm not excited about it. So I wanted to ask what you think, Grant @grantmcdermott and Vincent @vincentarelbundock, maybe others have thoughts/ideas as well.A somewhat longer but more verbose alternative might be
baseplot()
. Short alternatives would bedraw()
orviz()
. Currently, I think I slightly preferbaseplot()
overplot2()
. Other opinions or better alternatives?