Индекс выходящей ошибки при построении точечной диаграммы - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть датафрейм формы (25, 19).Столбец 1 имеет работающие корзины, а столбцы со 2 по 19 - годы.Я хочу построить тепловую карту из этого.

Набор данных Synposis

variable    bins    2000    2001    2002    2003    2004    2005    2005    2007    2008    2009    2010    2011    2012    2013    2014    2015    2016    2017
0           binA    2282447 2228013 2166100 2098020 2024397 1934590 1846291 1765541 1687144 1632758 1542434 1430951 1306639 1162500 996818  797653  554513  208297
1           binB    264863  279788  309941  333953  355826  380675  408065  435550  475923  530992  567297  602801  642232  686201  738248  804876  901286  1138540

........ .........

Я хотел построить тепловую карту следующим образом

enter image description here

Однако, когда я запускаю код, как следует, выдает ошибку индекса.Я понимаю ошибку, но даже когда я обрезаю таблицу, чтобы она стала равной по размеру (19,19), я все равно получаю ошибку или просто пустой график.

import matplotlib.pyplot as plt

cddfdf=cddfdf.iloc[:, 0:19]

fig, ax =plt.subplots()
ax.set_xticks(np.arange(cddfdf.shape[0]))
ax.set_yticks(np.arange(cddfdf.shape[0]))
ax.set_xticklabels(cddfdf['bins'])
ax.set_yticklabels(cddfdf['bins'])

# Rotate the tick labels and set their alignment.
plt.setp(ax.get_xticklabels(), rotation=45, ha="right",
         rotation_mode="anchor")


# for i in range(renamedDfd.shape[0]):
#     for j in range(renamedDfd.shape[0]):
#         print(i, j)
#         renamedDfdd[i, j]
#         break
# renamedDfdd   



    #         text = ax.text(j, i, renamedDfdd[i, j],
    #                        ha="center", va="center", color="w")



    cddfdfd=cddfdf[['bins', 2000, 2001]]
    cddfdfdd=cddfdfd[[2000, 2001]]
    cddfdfddd=cddfdfdd.values

    len(cddfdfddd.T)

        #len(cddfdfddd['bins'])

Я получаю сообщение об ошибке в строке 'text'

 for i in range(cddfdfddd.shape[0]):
        for j in range(cddfdfddd.shape[0]):
            #print(i, j)
            from copy import deepcopy
            copyof = deepcopy(cddfdfddd.T)
            #copyof[i, j]
            #g=copyof.T
            #printå(g[i, j])
            text = ax.text(j, i, copyof[i, j],
                           ha="center", va="

center", color="`enter code here`w")

Ошибка

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-59-85f53ea47f7c> in <module>()
      7         #g=copyof.T
      8         #print(g[i, j])
----> 9         text = ax.text(j, i, copyof[i, j],
     10                        ha="center", va="center", color="w")

IndexError: index 2 is out of bounds for axis 0 with size 2

Как построить тепловую карту для этого временного ряда, который в (bin,бункеры)

...