I have a plot with a y axis
It should only show integer values such as 1,2,3,4
Unfortunately when I zoom in floats are displayed (1.5,2.5,3.5)
Is there a way of telling plotly to only display ints
I tried using a list of predefined tickvals but this list is too long when zoomed out fully than the labels overlap
Thanks
You could try using tickformat
like in http://codepen.io/etpinard/pen/OpyjjJ
This is nice but it produces multiple numbers which are the same.
β1 1.5 2β turns into β1 1 2β
Ideally I was looking for a method of turning β1 1.5 2β into just β1 2β
Thanks
Thereβs probably a way to do this. You can play around with all the possible format settings on http://bl.ocks.org/zanarmstrong/05c1e95bf7aa16c4768e
Thanks etienne your recommeded link worked very well
The format that removes rounded ints was d3.format(",d")
The graph looks much nicer now
In python, along:
fig = Figure(
data = data,
layout = Layout(
barmode='stack',
yaxis={'tickformat': ',d'},
This is an old but interesting point. However, the proposed solution is still giving me multiple numbers in a colorbar. Iβm setting:
colorbar = dict(title=f"{report['unit'][graph]}",
outlinewidth=0.5,
outlinecolor='black',
len=0.7,
thickness=0.02,
thicknessmode='fraction',
ticks='inside',
tickformat=',d',
yanchor='bottom',
y=-0.025)
and the colorbar looks like:
Hello,
Were you guys able to solve this error? Even I am facing the same issues. for eg: Instead of 1, 1.5,2,2.5 converting to 1,2, it gets displayed as 1,1,2,2.
Also if I try to set the dtick as 1, it wont work for the plots which actually has large data.
Thanks
Mit
Iβm having the same issue here. Is there really not a way to set a minimum axis interval?
EDIT: I just noticed that this post is marked with plotly JS. I think the proposed solution should work in JS also, thatβs why I decided to not delete it
Hi,
you could fix the tickvals to integers:
import plotly.graph_objects as go
import numpy as np
def data():
return np.random.uniform(5,10,1000)
x = data()
y = data()
fig = go.Figure(
data=[
go.Scatter(
x=x,
y=y,
mode='markers',
marker={
'color': y,
'colorscale': 'viridis',
'colorbar': {'thickness': 10, 'tickformat': '.1f'},
#'colorbar': {'thickness': 10}
},
showlegend=False,
)
]
)
fig.update_layout(
xaxis={
'range': [y.min(), y.max()],
'tickvals': [*range(int(y.min()), int(y.max())+2)]
},
width=500,
height=500
)
creates: