Transparent markers misbehaving in plotly.express.scatter
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 16h 26m
- Merged PRs (30d)
- 21
Description
Description
I create a scatter plot and use the color and size arguments. One subset gets transparent markers and is not visible in the plot and the legend.
But: if I hover over an area, where a marker should be, the tool tip is appearing, see figure below:
Expected Behavior
Marker should be visible in plot and legend.
Reproduction
Running the code below I get the figure above.
# %%
# Imports
import sys
import plotly
import pandas as pd
import plotly.express as px
print(f'Python version: {sys.version}') # Mine is: 3.11.9
print(f'Pandas version: {pd.__version__}') # Mine is: 2.2.2
print(f'Plotly version: {plotly.__version__}') # Mine is: 5.22.0
# %%
# Create input frame
df = pd.DataFrame(
[
[11739,21.329416,10.010795,2,1],
[20500,21.860714,12.238669,2,2],
[1504,21.927166,10.314574,2,1],
[28194,21.257576,12.823945,2,3],
[9008,21.886381,9.579169,2,1],
[17073,21.57327,11.087076,2,1],
[40734,21.069445,11.887547,3,0],
[36405,22.397081,11.608735,3,0],
[36919,21.95463,12.856195,3,0],
[9867,20.893126,10.761697,2,1]
],
columns=['id' ,'x', 'y', 'loop_number', 'repetition']
)
df.set_index('id', inplace=True)
df.x = df.x.astype('float32')
df.y = df.y.astype('float32')
df.loop_number = df.loop_number.astype('category') # As category to use color labels, not a color bar.
df.repetition = df.repetition.astype('int32')
df.head()
# %%
# Create Scatter Plot
px.scatter(
df,
x='x',
y='y',
color='loop_number',
size='repetition',
labels={
'color': 'Type',
'size': 'Size'
},
hover_name=df.index
)
Contributor guide
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
Run the provided Python reproduction through plotly.express.scatter with color='loop_number' and size='repetition'. Inspect why the transparent subset is omitted from both the plot and legend despite remaining hoverable; done means that subset's markers and legend entry are visible while preserving the reported scatter behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- pandas, 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