You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python制作美观的文本匹配可视化图表?

实现文本匹配对的连线可视化方案

针对你需要的文本匹配连线可视化(左右两列文本对应匹配对用线条连接,样式清晰美观),可以通过Matplotlib自定义绘制来实现,避开通用数据绘图的局限,直接控制文本位置和连线样式:

核心实现步骤

  • 将匹配对拆分为左右两组文本,分别固定在画布的左右两侧
  • 为每组文本分配均匀的纵向坐标,保证对齐
  • 针对每个匹配对绘制连线,可自定义线条样式(如实线匹配相同文本、虚线匹配不同文本)
  • 隐藏冗余坐标轴,调整字体和布局优化美观度

完整代码示例

import matplotlib.pyplot as plt

# 你的匹配列表
matchings = [('The', 'The'), ('over', 'above'), ('face', 'wall')]

# 拆分左右文本组
left_texts = [pair[0] for pair in matchings]
right_texts = [pair[1] for pair in matchings]
n_pairs = len(matchings)

# 设置画布
plt.figure(figsize=(8, 3), dpi=120)
ax = plt.gca()

# 分配坐标:左侧x=0.2,右侧x=0.8,y坐标均分
y_coords = [i/(n_pairs-1) if n_pairs>1 else 0.5 for i in range(n_pairs)]

# 绘制左侧文本
for y, text in zip(y_coords, left_texts):
    ax.text(0.2, y, text, fontsize=12, ha='right', va='center')

# 绘制右侧文本
for y, text in zip(y_coords, right_texts):
    ax.text(0.8, y, text, fontsize=12, ha='left', va='center')

# 绘制匹配连线:相同文本用实线,不同用虚线
for i, (left, right) in enumerate(matchings):
    y = y_coords[i]
    line_style = '-' if left == right else '--'
    line_color = '#2ecc71' if left == right else '#3498db'
    ax.plot([0.2, 0.8], [y, y], linestyle=line_style, color=line_color, linewidth=2)

# 美化布局:隐藏坐标轴,调整范围
ax.set_xlim(0, 1)
ax.set_ylim(-0.1, 1.1)
ax.set_axis_off()
plt.title("文本匹配可视化", fontsize=14, pad=20)

plt.tight_layout()
plt.show()

效果说明

  • 左右文本对齐工整,匹配对连线清晰区分(相同匹配用绿色实线,不同匹配用蓝色虚线)
  • 无冗余坐标轴干扰,整体样式简洁美观,完全贴合文本匹配可视化的需求

内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:47:16