【发布时间】:2021-09-20 18:27:07
【问题描述】:
我想我在 plotly.graph_objects.box Marker 类中发现了一个错误,因为属性 outliercolor 不起作用。我遵循了https://plotly.github.io/plotly.py-docs/generated/plotly.graph_objects.Box.html#plotly.graph_objects.box.Marker.outliercolor 中的参考,但更改异常值颜色不会有任何区别。
这是一个例子:
import numpy as np
import pandas as pd
import plotly.graph_objects as go
from matplotlib.colors import LinearSegmentedColormap, to_hex
df_plot = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
cat_var = "species"
num_var = "petal_length"
lvls = df_plot[cat_var].unique()
n_levels = len(lvls)
cmap = LinearSegmentedColormap.from_list("my_palette", ["#111539", "#97A1D9"])
my_palette = [to_hex(j) for j in [cmap(i/n_levels) for i in np.array(range(n_levels))]]
boxes = []
for l in range(n_levels):
boxes += [
go.Box(
name = lvls[l],
y = df_plot.loc[df_plot.loc[:, cat_var] == lvls[l], num_var].values,
width = 0.4,
boxpoints = "outliers",
marker = {
"outliercolor": "red", ### there may be a plotly.go bug here
"color": my_palette[l],
"size": 30,
"opacity": 0.5
}
)
]
fig = go.Figure(data = boxes)
fig.update_layout(
font = dict(
size = 18
),
showlegend = False,
plot_bgcolor = "white",
hoverlabel = dict(
font_size = 18,
font_family = "Rockwell"
)
)
fig.show()
【问题讨论】: