<p>跳过一些更精细的绘图点,以获得:</p>
<ul>
<li>每一行(3个比率)应以点的形式与行的ID相对应</li>
<li>所有具有相同ID的行都应打印为相同的x值/ID,但使用另一种颜色</li>
<li>x蜱虫应该是ID,如果可能的话,也应该是相应的基因(所以有些基因会出现在几个x蜱虫上,因为它们有多个ID映射到它们)</li>
</ul>
<p>我建议您尝试使用matplotlib来处理打印,并手动循环颜色。您可以使用以下内容:</p>
<pre><code>import matplotlib.pyplot as plt
import pandas as pd
import itertools
#data
df = pd.DataFrame(
{'id': [1, 2, 3, 3],
'labels': ['HPRR1234', 'HPRR4321', 'HPRR2345', 'HPRR2345'],
'g': ['KRAS', 'KRAS', 'ELK4', 'ELK4'],
'r1': [15, 9, 15, 1],
'r2': [14, 8, 7, 0],
'r3': [14, 16, 9, 12]})
#extra setup
plt.rcParams['xtick.major.pad'] = 8
#plotting style(s)
marker = itertools.cycle((',', '+', '.', 'o', '*'))
color = itertools.cycle(('b', 'g', 'r', 'c', 'm', 'y', 'k'))
#plot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(df['id'], df['r1'], ls='', ms=10, mew=2,
marker=marker.next(), color=color.next())
ax.plot(df['id'], df['r2'], ls='', ms=10, mew=2,
marker=marker.next(), color=color.next())
ax.plot(df['id'], df['r3'], ls='', ms=10, mew=2,
marker=marker.next(), color=color.next())
# set the tick labels
ax.xaxis.set_ticks(df['id'])
ax.xaxis.set_ticklabels(df['labels'])
plt.setp(ax.get_xticklabels(), rotation='vertical', fontsize=12)
plt.tight_layout()
fig.savefig("example.pdf")
</code></pre>
<p>如果你有很多行,你可能会想要更多的颜色,但这至少显示了概念。</p>