tickmode="array" with custom tickvals ticktext doesn't work at all
See original GitHub issueFrom plotly doc:
Example:
import pandas as pd
import numpy as np
np.random.seed(42)
feature = pd.DataFrame({'ds': pd.date_range('20200101', periods=100*24, freq='H'),
'y': np.random.randint(0,20, 100*24) ,
'yhat': np.random.randint(0,20, 100*24) ,
'price': np.random.choice([6600, 7000, 5500, 7800], 100*24)})
import plotly.graph_objects as go
import plotly.offline as py
import plotly.express as px
from plotly.offline import init_notebook_mode
init_notebook_mode(connected=True)
y = feature.set_index('ds').resample('D')['y'].sum()
fig = go.Figure()
fig.add_trace(go.Scatter(x=y.index, y=y))
x_dates = y.index.to_series().dt.strftime('%Y-%m-%d').sort_values().unique()
layout = dict(
xaxis=dict(
tickmode="array",
tickvals=np.arange(0, x_dates.shape[0],2).astype(int),
ticktext=x_dates[::2],
tickformat='%Y-%m-%d',
tickangle=45,
)
)
fig.update_layout(layout)
fig.show()
Result:
Since length of x_dates[::2]
is 50 , the ticknumber doesn’t match at all .
How do I sovle it ??
Issue Analytics
- State:
- Created 3 years ago
- Comments:8 (5 by maintainers)
Top Results From Across the Web
Plotly Set custom tickvals for all points but do not show all ticks
I'd like to show "(Two, 28.8)" AND keep the gridline as-is ("One", "Three", ...). Adding x=2 setting in tickvals and ticktext won't do...
Read more >Formatting ticks in Python - Plotly
If "array" , the placement of the ticks is set via tickvals and the tick text is ticktext . In [2]:. import plotly.graph_objects...
Read more >Plotly Set custom tickvals for all points but d...anycodings
Adding anycodings_plotly x=2 setting in tickvals and ticktext won't anycodings_plotly do because it will add a new gridline x=2. How can this be ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
OK, I put full example here :
I like to see
tickmode=“auto” and nticks=50 is fine for me .
I am here just want to report this problem , because plotly is very handy now, I hope it would be bettter
results with wrong xticks :
2 . x date , tickvals date ticktext string
still wrong result
Ah, OK, the problem is that you’re not seeing as many tick labels as you would expect, got it.
There does seem to be a bug here, which I’ll investigate, because while I get the expected output with:
If I then manually set
tickmode="array"
I see the default ticks, even though settingtickvals
internally is meant to settickmode="array"
!