I have a simple dataframe with two columns. A sample is shown below, the data is available here .
year-week users
0 2018-22 2
1 2018-23 3
2 2018-24 4
3 2018-25 3
4 2018-26 5
.. ... ...
69 2020-03 232
70 2020-04 226
71 2020-05 214
72 2020-06 203
73 2020-07 119
[74 rows x 2 columns]
When I try to plot those two columns with Plotly Express, it omits the data until 2019-30
.
import pandas
import plotly.express as px
df = pd.read_csv("https://pastebin.com/raw/x164p1Zp")
fig = px.line(df, x="year-week", y="users")
fig.update_layout(xaxis=dict(tickformat="%Y-%W"))
fig.show()
If I plot the same data with matplotlib, the data is shown:
import pandas
import matplotlib
df = pd.read_csv("https://pastebin.com/raw/x164p1Zp")
df.plot.line(x="year-week", y="users");
I cannot understand why two plotting libraries show the same data in a wildly different way.
How can I plot all the data points in Plotly Express to get a plot similar to what matplotlib shows?
Plotly does not recognize your x axis as being a date. You need to convert it explicitly to a datetime format.
Solution:
df = pd.read_csv("https://pastebin.com/raw/x164p1Zp")
# convert column to datetime, weekday needed for conversion to work
df["year-week"] = pd.to_datetime(df["year-week"] + '-0', format="%Y-%W-%w")
fig = px.line(df, x="year-week", y="users")
fig.update_layout(xaxis=dict(tickformat="%Y-%W"))
fig.show()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.