[英]Plotly Strip plot - color by continuous scale
你需要一個抖動。 我將偽抖動函數應用於 y 軸以創建散點圖。 抖動功能的靈感來自此頁面的內容。 它可能與原始的圖形邏輯不同。 起初,我通過在循環過程中提取一周中的天數來編寫圖表,但由於色標重復,我描述了一周中的所有天並僅添加了周六的色標,因為周六包含最大值。
import plotly.graph_objects as go
import plotly.express as px
import numpy as np
df = px.data.tips()
N = len(df)
fig = go.Figure()
dfs = df.query('day == "Sun"')
fig.add_trace(go.Scatter(
x=dfs['total_bill'],
y=0 + np.random.rand(N) * 0.2,
mode='markers',
marker=dict(
size=9,
color=dfs['total_bill'],
),
name='Sun',
))
dfst = df.query('day == "Sat"')
fig.add_trace(go.Scatter(
x=dfst['total_bill'],
y=1 + np.random.rand(N) * 0.2,
mode='markers',
marker=dict(
size=9,
color=dfst['total_bill'],
colorbar=dict(
title='total_bill',
),
colorscale='Plasma'
),
name='Sat',
))
dfth = df.query('day == "Thur"')
fig.add_trace(go.Scatter(
x=dfth['total_bill'],
y=2 + np.random.rand(N) * 0.2,
mode='markers',
marker=dict(
size=9,
color=dfth['total_bill'],
),
name='Thur',
))
dff = df.query('day == "Fri"')
fig.add_trace(go.Scatter(
x=dff['total_bill'],
y=3 + np.random.rand(N) * 0.2,
mode='markers',
marker=dict(
size=9,
color=dff['total_bill'],
),
name='Fri',
))
fig.update_layout(showlegend=False, coloraxis_showscale=True)
fig.update_yaxes(tickvals=[0,1,2,3], ticktext=['Sun','Sat','Thur','Fri'])
fig.show()
您可以使用 Plotly 或 Seaborn
情節
我在這里使用灰色(白色到黑色),但你可以選擇有意義的。 檢查 RGB 值... n_colors
會將顏色分成組。 使用了 4 天,因為這里有 4 個獨特的日子
代碼:
import plotly.express as px
from plotly.colors import n_colors
df = px.data.tips()
fig = px.strip(df, x="total_bill", y="day", color="day", color_discrete_sequence = n_colors('rgb(0, 0, 0)', 'rgb(255, 255, 255)', 4, colortype = 'rgb'))
輸出
海博恩
在 seaborn 中實際上更容易,因為您可以使用palette
並使用jitter=True
,您應該很高興
代碼:
import seaborn as sns
sns.stripplot(data = df, x='total_bill', y = 'day', palette = 'gray', jitter=True)
輸出
選項 3 - 連續 X 軸如果您需要 X 軸上的漸變,則需要將hue='total_bill'
添加到 sns 圖中。 下面的代碼...我刪除了圖例,因為它會顯示所有顏色,您可能不需要
import seaborn as sns
sns.stripplot(data = df, x='total_bill', y = 'day', hue = 'total_bill', palette = 'gray', jitter=True)
plt.legend([],[], frameon=False)
輸出
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.