首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在散点图和不同的标记中改变文本的颜色?

如何在散点图和不同的标记中改变文本的颜色?
EN

Stack Overflow用户
提问于 2020-01-31 17:57:48
回答 1查看 6.1K关注 0票数 3

我想使用plot.ly绘制虹膜数据集。它在散点数据中有一个颜色参数,它的作用类似于沙鱼的色调,但它只改变标记的颜色,不能改变文本的颜色,我也找不到为什么要改变每组颜色的标记类型。代码是:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-03 06:35:50

下面是使用for_each_trace将文本颜色与标记颜色进行匹配的方法

代码语言:javascript
复制
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()

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

代码语言:javascript
复制
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,并且对于更复杂的图形可能有点脆弱:)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60001622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档