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

DNA序列2D随机游走可视化:如何为四种碱基分别设置不同展示颜色

实现方案

完全可以实现不同碱基对应路径段的颜色区分,核心逻辑是放弃一次性绘制整条路径,改为逐段绘制每一步的移动轨迹,单独为每段路径匹配对应碱基的颜色,修改后可直接运行的完整代码如下:

import matplotlib.pyplot as plt
from matplotlib.patches import Patch # 用于构建自定义图例

# 初始化起点坐标
x = y = 0
x_values = [0]
y_values = [0]

dna_seq =  ('GGACTTCCCTATGGTGCTAACAAAGAGGCAGACAAA')

# 统一管理碱基的移动规则与配色,可按需调整颜色值
base_rule = {
    'T': {'color': '#FF3B30', 'move': (0, 1)}, # 红色:向上
    'A': {'color': '#007AFF', 'move': (0, -1)}, # 蓝色:向下
    'G': {'color': '#34C759', 'move': (1, 0)}, # 绿色:向右
    'C': {'color': '#FF9500', 'move': (-1, 0)} # 橙色:向左
}

# 生成所有坐标点
for base in dna_seq:
    dx, dy = base_rule[base]['move']
    x += dx
    y += dy
    x_values.append(x)
    y_values.append(y)

fig, ax = plt.subplots(figsize=(8,8))

# 逐段绘制路径,每段使用对应碱基的颜色
for i in range(len(dna_seq)):
    current_base = dna_seq[i]
    seg_x = [x_values[i], x_values[i+1]]
    seg_y = [y_values[i], y_values[i+1]]
    ax.plot(seg_x, seg_y, c=base_rule[current_base]['color'], linewidth=2)

# 生成颜色与碱基对应的图例
legend_elements = [Patch(facecolor=v['color'], label=k) for k, v in base_rule.items()]
ax.legend(handles=legend_elements, loc='upper left', title='碱基类型')

# 可选配置:坐标轴标签、标题、网格
ax.set_xlabel('水平位移(G向右/C向左)')
ax.set_ylabel('垂直位移(T向上/A向下)')
ax.set_title('DNA序列随机游走可视化')
ax.grid(alpha=0.3)

plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 04:06:01