制作数字线,从字典中绘制键,然后用键标记它们并创建图例

时间:2019-01-10 01:48:25

标签: python dictionary matplotlib

我有一个键(整数)和值(字符串)的字典,我想将键绘制在数字线上。我希望数字行上的最大值是最高键值,最低值是最低键。

然后,我想用键和颜色代码标记每个点,或者根据其值为每个点分配某种形状,然后用图例显示颜色或形状与什么值相关(某些值来自字典可能是一样的,所以这就是为什么我要用颜色标记)。

这是我到目前为止的号码:

import matplotlib.pylab
Matches = {9: 'CCTA', 20: 'TGGA', 21: 'GGAC', 96: 'GGAC', 160: 'TGGA', 169: 'CCTA']
x,y = zip(*Matches)
zero = []
for i in x:
    zero.append(0)
plt.scatter(x,zero)
plt.show()

总而言之,我只需要帮助制作图例和标记点。

对不起,我仍在努力弄清楚matplotlib。

谢谢!您的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

感谢您在问题中提供示例字典。以下是绘制所需内容的一种方法。在这里,您根据需要使用keys作为标记的大小。 x-ticklabel现在是您的值。如您所见,其中两个是重叠的,因为它们的键大小非常接近。

我还使用列表理解来创建zero列表。您还可以使用NumPy的np.zeros(len(x))创建一个0的数组。

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 6))

Matches = {9: 'CCTA', 20: 'TGGA', 21: 'GGAC', 96: 'GGAC', 160: 'TGGA', 169: 'CCTA'}
x, y = zip(*Matches.items())
zero = [0 for i in x] 

plt.scatter(x,zero, s=x)
plt.xticks(x, y, rotation=45)

enter image description here