![](/img/trans.png)
[英]How to connect box plot medians with multicategory x axis in plotly python
[英]Plotly Multicategory X Axis Ordering
我正在嘗試創建一個帶有日期的多類別 x 軸,下面的代碼和圖表為我提供了我想要的外觀,但它只是亂序。 我嘗試使用“原始 x 軸”列而不是月份,但是格式顯示不正確,我似乎無法更改它的格式。
import random
import numpy as np
import plotly.express as px
df = pd.DataFrame({"Year":np.repeat([2018,2019],[8,12]),
"Month": ["May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr","May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
"Original x-axis": pd.date_range(start = "2018-05-01", end = "2019-12-01", freq = "MS"),
"Customer Satisfaction Score": random.sample(range(30,100), 20)})
fig = go.Figure()
fig.add_trace(go.Scatter(
#x = cust["Original x-axis"],
x = [df["Year"],df["Month"]],
y = df["Customer Satisfaction Score"], mode = "lines"))
fig.update_layout(plot_bgcolor = "white",
annotations = [dict(text = "Customer Satisfaction Score",
yref = "paper",
xref = "paper",
x = 0,
y = 1.1,
font = dict(size = 16, color = "#909497"),
showarrow = False)],
font = dict(size = 12, color = "#BDC3C7"))
#xaxis = dict(tickformat = "%b"))
fig.show()
請檢查代碼段。 您需要根據year和month對 date_time 列進行排序。
在這里,我為此創建了一個額外的列。 其余部分相同。
df['month'] = df['Original x-axis'].dt.strftime('%b-%Y')
import random
import numpy as np
import plotly.express as px
import pandas as pd
import plotly.offline as py
import plotly.graph_objs as go
df = pd.DataFrame({"Year":np.repeat([2018,2019],[8,12]),
"Month": ["May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr","May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
"Original x-axis": pd.date_range(start = "2018-05-01", end = "2019-12-01", freq = "MS"),
"Customer Satisfaction Score": random.sample(range(30,100), 20)})
df['month'] = df['Original x-axis'].dt.strftime('%b-%Y')
fig = go.Figure()
fig.add_trace(go.Scatter(
#x = cust["Original x-axis"],
x = [df["Year"],df["month"]],
y = df["Customer Satisfaction Score"], mode = "lines"))
fig.update_layout(plot_bgcolor = "white",
annotations = [dict(text = "Customer Satisfaction Score",
yref = "paper",
xref = "paper",
x = 0,
y = 1.1,
font = dict(size = 16, color = "#909497"),
showarrow = False)],
font = dict(size = 12, color = "#BDC3C7"))
#xaxis = dict(tickformat = "%b"))
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.