你好,
根据你的描述,你希望在BERTopic中自定义主题间距离图的颜色。你可以尝试修改_topic.py
文件中的代码来实现这个功能。以下是一个可能的解决方案:
首先,你需要导入Seaborn库并设置颜色Map。在_topic.py
文件中添加以下代码:
import seaborn as sns
# 设置颜色Map
color_palette = sns.color_palette("husl", n_colors=len(topics))
其中,topics
是一个包含所有主题的列表。n_colors
参数表示你想要为每个主题分配的颜色数量。在这个例子中,我们使用了一个名为"husl"的颜色Map,你可以根据需要选择其他颜色Map。
接下来,你需要修改绘制距离图的代码,以便为每个气泡分配不同的颜色。找到绘制距离图的部分,类似于以下代码:
for i in range(len(distance)):
for j in range(i+1, len(distance[i])):
# 绘制气泡的代码
在这里,你需要为每个气泡分配一个颜色。可以使用color_palette
变量来实现这一点。例如,将上述代码修改为:
for i in range(len(distance)):
for j in range(i+1, len(distance[i])):
color = color_palette[i % len(topics)] # 为每个气泡分配一个颜色
# 绘制气泡的代码,使用color变量作为颜色参数
这样,你就可以在BERTopic中实现多色可视化了。希望这对你有所帮助!如果你还有其他问题,请随时提问。
3条答案
按热度按时间iszxjhcz1#
感谢您提出这个问题。遗憾的是,您在Github上的代码格式仍然有些不清楚。您能确保所有内容都按照Python的格式进行吗?此外,您能更深入地介绍一下问题是什么以及您正在寻求的解决方案类型吗?请确保您的描述更加完整。
byqmnocz2#
感谢您的友好和迅速回复。我刚刚更新了问题描述。
3b6akqbq3#
你正在给它一个颜色调色板,这个蓝色的颜色会覆盖你在这里看到的颜色:
https://github.com/MaartenGr/BERTopic/blob/951b97645acdf55e184889c761a83d2e1d73812f/bertopic/plotting/_topics.py#L91C5-L91C32
那个函数,
get_color
,定义了在选择可视化时选择的颜色。你需要调整那里的代码以显示不同的颜色。更具体地说,我建议你删除滑块,因此删除
get_color
函数,因为它会破坏你的多色可视化。