做一条数字线,从字典中画出键,然后用键给它们贴上标签,并做一个图例

2024-10-02 12:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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

然后我想用它的键和颜色代码标记每个点,或者根据它的值为每个点指定一个特定的形状,然后有一个图例显示颜色或形状与哪个值相关(字典中的一些值可能是相同的,所以我想用颜色代码)

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

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

谢谢你!你的帮助将不胜感激


Tags: 字符串标记字典matplotlibplt数字整数形状
1条回答
网友
1楼 · 发布于 2024-10-02 12:22:51

谢谢你提供你问题的词典样本。下面是一个方法来规划你想要什么。这里使用keys作为所需标记的大小。x-ticklebels现在是您的值。如您所见,其中两个是重叠的,因为它们的关键点在大小上非常接近

我还使用列表理解来创建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

相关问题 更多 >

    热门问题