Plotly 轴以相反的顺序显示日期(最近到最早)-Python
Plotly axis is showing dates in reverse order (recent to earliest) -Python
我利用 Python 中的 plotly 库创建了一个可视化。一切看起来都很好,除了轴从 2020 开始然后显示 2019。轴应该与显示的相反。
这是数据 (df):
date percent type
3/1/2020 10 a
3/1/2020 0 b
4/1/2020 15 a
4/1/2020 60 b
1/1/2019 25 a
1/1/2019 1 b
2/1/2019 50 c
2/1/2019 20 d
这就是我正在做的
import plotly.express as px
px.scatter(df, x = "date", y = "percent", color = "type", facet_col = "type")
我怎样才能使日期正确排序,从早到晚?日期是在原始数据中排序的,为什么它没有反映在图表上?
如有任何建议,我们将不胜感激。
结果如下:
按照你的df的顺序进行绘图。如果您想要日期顺序,请按日期顺序排序。
df.sort_values('date', inplace=True)
许多其他绘图实用程序(Seaborn 等)在绘图时默认排序。情节表达 does not do this.
您的日期列似乎是一个字符串。如果将其转换为日期时间,则无需对数据框进行排序:plotly express 会将 x-axis 设置为日期时间:
工作代码示例:
import pandas as pd
import plotly.express as px
from io import StringIO
text = """
date percent type
3/1/2020 10 a
3/1/2020 0 b
4/1/2020 15 a
4/1/2020 60 b
1/1/2019 25 a
1/1/2019 1 b
2/1/2019 50 c
2/1/2019 20 d
"""
df = pd.read_csv(StringIO(text), sep='\s+', header=0)
px.scatter(df, x="date", y="percent", color="type", facet_col="type")
我利用 Python 中的 plotly 库创建了一个可视化。一切看起来都很好,除了轴从 2020 开始然后显示 2019。轴应该与显示的相反。
这是数据 (df):
date percent type
3/1/2020 10 a
3/1/2020 0 b
4/1/2020 15 a
4/1/2020 60 b
1/1/2019 25 a
1/1/2019 1 b
2/1/2019 50 c
2/1/2019 20 d
这就是我正在做的
import plotly.express as px
px.scatter(df, x = "date", y = "percent", color = "type", facet_col = "type")
我怎样才能使日期正确排序,从早到晚?日期是在原始数据中排序的,为什么它没有反映在图表上?
如有任何建议,我们将不胜感激。
结果如下:
按照你的df的顺序进行绘图。如果您想要日期顺序,请按日期顺序排序。
df.sort_values('date', inplace=True)
许多其他绘图实用程序(Seaborn 等)在绘图时默认排序。情节表达 does not do this.
您的日期列似乎是一个字符串。如果将其转换为日期时间,则无需对数据框进行排序:plotly express 会将 x-axis 设置为日期时间:
工作代码示例:
import pandas as pd
import plotly.express as px
from io import StringIO
text = """
date percent type
3/1/2020 10 a
3/1/2020 0 b
4/1/2020 15 a
4/1/2020 60 b
1/1/2019 25 a
1/1/2019 1 b
2/1/2019 50 c
2/1/2019 20 d
"""
df = pd.read_csv(StringIO(text), sep='\s+', header=0)
px.scatter(df, x="date", y="percent", color="type", facet_col="type")