position_dodge not working with categorical y and continous x variables
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.8k
- Forks
- 254
- Avg merge
- 10h 35m
- Merged PRs (30d)
- 9
Description
I illustrate the problem with the dots dataset:
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.
ggplot2 gives me what I would expect (I execute the following in a Jupyter notebook)
%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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the two plotnine examples from the issue with the dots dataset, comparing position_dodge for categorical x versus categorical y. Trace the position_dodge and geom_point entry points to find why continuous x with categorical y is not separated, then add or update a regression test showing the expected dodged output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100