Open fbnrst opened 1 month ago
I illustrate the problem with the dots dataset:
dots
import pandas as pd from plotnine import * dots = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/dots.csv')
Now, I plot with categorical x and continuous y variable:
( ggplot(dots, aes(y='coherence', x='align', color='choice')) + geom_point(position = position_dodge(width=0.8)) )
This worked fine. Now, I swap the x- and y-axis:
( ggplot(dots, aes(x='coherence', y='align', color='choice')) + geom_point(position = position_dodge(width=0.8)) )
Now, position_dodge did not work anymore.
position_dodge
ggplot2 gives me what I would expect (I execute the following in a Jupyter notebook)
ggplot2
%load_ext rpy2.ipython
%%R -i dots library(ggplot2) ( ggplot(dots, aes(x=coherence, y=align, color=choice)) + geom_point(position = position_dodge(width=0.8)) )
Software versions:
import session_info session_info.show()
----- pandas 2.2.2 plotnine 0.13.6 session_info 1.0.0 ----- Click to view modules imported as dependencies ----- IPython 8.26.0 jupyter_client 8.6.2 jupyter_core 5.7.2 ----- Python 3.12.4 | packaged by conda-forge | (main, Jun 17 2024, 10:23:07) [GCC 12.3.0] Linux-3.10.0-1062.18.1.el7.x86_64-x86_64-with-glibc2.17 ----- Session information updated at 2024-07-15 16:29
This does not work because geoms have yet not acquired awareness of their orientation. The interim solution if possible is to use coord_flip to flip from the canonical orientation.
coord_flip
I illustrate the problem with the
dots
dataset:Now, I plot with categorical x and continuous y variable:
This worked fine. Now, I swap the x- and y-axis:
position_dodge
did not work anymore.ggplot2
gives me what I would expect (I execute the following in a Jupyter notebook)Software versions: