根据列表值向散点图位置添加数字

时间:2016-07-30 11:52:24

标签: python python-2.7 matplotlib colors label

我遇到以下问题。下图表示一个区域。颜色根据它们所属的时间段分配。由于我有大约22个周期,有时甚至更多,它在大多数色标上有时很难看出不同时期之间的差异。因此,我想在每个方块的中间添加小数字。该数字应与该职位的PeriodNumbersGood编号相同。

我希望有人可以帮助我,或者对我有任何建议。

import matplotlib.pyplot as plt
PeriodNumbersGood = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22]

XGOOD = [336350.0, 336450.0, 336450.0, 336550.0, 336650.0, 336750.0, 336650.0, 336650.0, 336550.0, 336550.0, 336650.0, 336650.0, 336750.0, 336850.0, 336850.0, 336750.0, 336750.0, 336850.0, 336950.0, 337050.0, 336950.0, 336950.0, 337050.0, 336950.0, 336850.0, 336850.0, 336950.0, 336850.0, 336750.0, 336750.0, 336650.0, 336750.0, 336850.0, 336950.0, 337050.0, 336950.0, 336850.0, 336850.0, 336950.0, 337050.0, 337150.0, 337150.0, 337050.0, 337050.0, 337150.0, 337150.0, 337250.0, 337250.0, 337250.0, 337350.0, 337350.0, 337450.0, 337350.0, 337250.0, 337350.0, 337250.0, 337150.0, 337050.0, 337150.0, 337050.0, 337150.0, 337250.0, 337350.0, 337250.0, 337250.0, 337150.0, 337150.0, 337050.0, 336950.0, 337050.0, 336950.0, 337150.0, 337050.0, 337050.0, 336950.0, 337150.0, 337450.0, 337450.0, 337450.0, 337550.0, 337550.0, 337450.0, 337450.0, 337550.0, 337650.0, 337550.0, 337650.0, 337750.0, 337650.0, 337650.0, 337550.0, 337550.0, 337550.0, 337450.0, 337350.0, 337250.0, 337350.0, 337350.0, 337450.0, 337350.0, 337450.0, 337350.0, 337350.0, 337450.0, 337450.0, 337350.0, 337250.0, 337250.0, 337150.0, 337250.0, 337250.0, 337250.0, 337150.0, 337150.0, 337050.0, 336950.0, 337150.0, 337250.0, 337350.0, 337450.0, 337550.0, 337450.0, 337350.0, 337250.0, 337350.0, 337450.0, 337550.0, 337650.0, 337650.0, 337650.0, 337750.0, 337750.0, 337850.0, 337850.0, 337750.0, 337850.0, 337750.0, 337650.0, 337550.0, 337550.0, 337750.0, 337750.0, 337750.0, 337850.0, 337850.0, 337950.0, 337950.0, 338050.0, 338050.0, 337950.0, 338050.0, 338150.0, 338250.0, 338150.0, 338150.0, 338250.0, 338150.0, 338050.0, 337950.0, 337950.0, 337850.0, 337950.0, 337850.0, 337850.0, 337750.0, 337750.0, 337650.0, 337650.0, 337750.0, 337850.0, 337850.0, 337750.0, 337750.0, 337850.0, 337750.0, 337850.0, 337750.0, 337650.0, 337550.0, 337550.0, 337550.0, 337650.0, 337550.0, 337650.0, 337750.0, 337850.0, 337950.0, 337950.0, 337850.0, 337750.0, 337650.0, 337650.0, 337550.0, 337550.0, 337650.0, 337750.0, 337850.0, 337750.0, 337650.0, 337550.0, 337450.0, 337450.0, 337350.0, 337350.0, 337450.0, 337550.0, 337450.0, 337750.0, 337850.0, 337850.0, 337950.0, 337950.0, 338050.0, 337950.0, 337950.0, 337850.0, 337750.0, 337650.0, 337550.0, 337550.0, 337650.0, 337650.0, 337650.0, 337650.0, 337750.0, 337850.0, 337950.0, 337950.0, 337950.0, 338050.0, 338150.0, 338150.0, 338050.0, 338050.0, 337950.0, 337850.0, 337750.0, 337850.0, 337850.0, 337850.0, 337850.0, 337750.0, 337950.0, 338050.0, 338050.0, 338150.0, 338150.0, 338250.0, 338350.0, 338350.0, 338250.0, 338350.0, 338350.0, 338250.0, 338050.0, 338050.0, 338150.0, 338050.0, 338050.0, 338150.0, 338250.0, 338250.0, 337850.0, 337950.0, 337850.0, 336550.0]
YGOOD = [7089650.0, 7089550.0, 7089650.0, 7089550.0, 7089450.0, 7089350.0, 7089350.0, 7089250.0, 7089350.0, 7089450.0, 7089550.0, 7089650.0, 7089550.0, 7089450.0, 7089350.0, 7089450.0, 7089250.0, 7089250.0, 7089250.0, 7089350.0, 7089450.0, 7089350.0, 7089250.0, 7089150.0, 7089150.0, 7089050.0, 7088950.0, 7088950.0, 7089050.0, 7089150.0, 7089150.0, 7088950.0, 7088850.0, 7088750.0, 7088650.0, 7088650.0, 7088650.0, 7088750.0, 7088850.0, 7088950.0, 7088850.0, 7088950.0, 7089050.0, 7089150.0, 7089050.0, 7089150.0, 7089050.0, 7088950.0, 7088850.0, 7088850.0, 7088750.0, 7088650.0, 7088650.0, 7088550.0, 7088450.0, 7088350.0, 7088450.0, 7088350.0, 7088250.0, 7088250.0, 7088350.0, 7088450.0, 7088550.0, 7088650.0, 7088750.0, 7088650.0, 7088550.0, 7088550.0, 7088450.0, 7088450.0, 7088550.0, 7088750.0, 7088850.0, 7088750.0, 7089050.0, 7089250.0, 7088750.0, 7088550.0, 7088450.0, 7088550.0, 7088450.0, 7088350.0, 7088250.0, 7088350.0, 7088250.0, 7088150.0, 7088050.0, 7088050.0, 7087950.0, 7087850.0, 7087750.0, 7087850.0, 7087950.0, 7088050.0, 7088150.0, 7088250.0, 7088350.0, 7088250.0, 7088150.0, 7088050.0, 7087950.0, 7087950.0, 7087850.0, 7087850.0, 7087750.0, 7087750.0, 7087850.0, 7087750.0, 7087850.0, 7087950.0, 7088050.0, 7088150.0, 7088050.0, 7088150.0, 7088150.0, 7088350.0, 7087950.0, 7087650.0, 7087550.0, 7087450.0, 7087550.0, 7087550.0, 7087450.0, 7087550.0, 7087650.0, 7087650.0, 7087650.0, 7087550.0, 7087650.0, 7087750.0, 7087750.0, 7087650.0, 7087750.0, 7087850.0, 7087850.0, 7087950.0, 7087950.0, 7088150.0, 7088250.0, 7088050.0, 7088150.0, 7087550.0, 7087450.0, 7087550.0, 7087450.0, 7087350.0, 7087250.0, 7087150.0, 7087050.0, 7086950.0, 7086950.0, 7086850.0, 7086750.0, 7086650.0, 7086750.0, 7086650.0, 7086550.0, 7086450.0, 7086450.0, 7086350.0, 7086250.0, 7086150.0, 7086150.0, 7086050.0, 7086150.0, 7086250.0, 7086250.0, 7086350.0, 7086350.0, 7086350.0, 7086450.0, 7086450.0, 7086550.0, 7086650.0, 7086750.0, 7086750.0, 7086850.0, 7086850.0, 7086750.0, 7086850.0, 7086950.0, 7086950.0, 7087050.0, 7087050.0, 7087050.0, 7087150.0, 7087150.0, 7087050.0, 7087050.0, 7087150.0, 7087250.0, 7087350.0, 7087350.0, 7087250.0, 7087150.0, 7087250.0, 7087350.0, 7087350.0, 7087450.0, 7087450.0, 7087350.0, 7087250.0, 7087350.0, 7087250.0, 7087150.0, 7087150.0, 7087050.0, 7086950.0, 7086950.0, 7086850.0, 7086850.0, 7086750.0, 7086650.0, 7086650.0, 7086550.0, 7086550.0, 7086650.0, 7086750.0, 7086650.0, 7086550.0, 7086450.0, 7086550.0, 7086650.0, 7086150.0, 7086050.0, 7085950.0, 7085850.0, 7085950.0, 7086050.0, 7086050.0, 7086150.0, 7086050.0, 7085950.0, 7085850.0, 7085750.0, 7085850.0, 7085850.0, 7085750.0, 7085650.0, 7085550.0, 7085450.0, 7085950.0, 7086250.0, 7086150.0, 7086250.0, 7086350.0, 7086450.0, 7086450.0, 7086350.0, 7086250.0, 7086350.0, 7086450.0, 7086550.0, 7086550.0, 7086750.0, 7086850.0, 7086950.0, 7086550.0, 7086350.0, 7086250.0, 7086250.0, 7086150.0, 7087250.0, 7087450.0, 7087650.0, 7089650.0]

plt.figure()
az = plt.subplot(111,aspect='equal')
az.scatter(XGOOD,YGOOD,c=PeriodNumbersGood, marker='s',s=160, lw=0, cmap= 'Dark2')
plt.show()

1 个答案:

答案 0 :(得分:1)

使用annotate为每个单元格添加标签:

...
for i, label in enumerate(PeriodNumbersGood):
    az.annotate(label, (XGOOD[i]-35,YGOOD[i]-20))
plt.show()

enter image description here