Python 如何更改绘图仪中的文字颜色和不同的标记?

Python 如何更改绘图仪中的文字颜色和不同的标记?,python,colors,plotly,legend,Python,Colors,Plotly,Legend,我想使用plot.ly来绘制iris数据集。它在散点数据中有一个颜色参数,就像seabron中的色调一样,但它只更改标记的颜色,不能更改文本的颜色,我找不到为什么要更改每组颜色的标记类型。代码是: import plotly.express as px df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", text='sepal_width') fig.updat

我想使用plot.ly来绘制iris数据集。它在散点数据中有一个颜色参数,就像seabron中的色调一样,但它只更改标记的颜色,不能更改文本的颜色,我找不到为什么要更改每组颜色的标记类型。代码是:

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",  text='sepal_width')
fig.update_traces(textposition='top center', textfont_size=14, textfont_color=c)
fig.show()
我希望文本颜色像每个点的颜色和3种不同类型的标记,2种类型的bc

结果是这样的,图例中有litel
Aa
,这是我不想要的。

以下是如何通过对每条跟踪使用
,将文本颜色与标记颜色匹配:

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",  text='sepal_width')
fig.for_each_trace(lambda t: t.update(textfont_color=t.marker.color, textposition='top center'))
fig.show()

关于图例,上面的代码已经让它看起来更好了,但是没有选项关闭它。您可以尝试一种方法,其中有两条痕迹,一条只有标记,另一条只有文本,而只有文本的痕迹不显示在图例中,如下所示:

import plotly.express as px

df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", text='sepal_width')
def add_trace_copy(trace):
    fig.add_traces(trace)
    new_trace = fig.data[-1]
    new_trace.update(textfont_color=trace.marker.color, textposition='top center', 
                     mode="text", showlegend=False)
    trace.update(mode="markers")
fig.for_each_trace(add_trace_copy)
fig.show()

这是可行的,但可能仅使用Plotly Express函数的输出,该函数自动设置
legendgroup
,对于更复杂的图形可能有点脆弱:)