1. 程式人生 > >Python報錯之:AttributeError: 'NoneType' object has no attribute 'seq'

Python報錯之:AttributeError: 'NoneType' object has no attribute 'seq'

在用matplotlib進行資料視覺化、給圖形新增標籤資料標籤時遇到一個報錯:AttributeError: 'NoneType' object has no attribute 'seq'.

記錄一下,程式碼:

from pylab import *
import matplotlib.pyplot as plt
a = ['a','b','c','d']
b = ['1','2','3','4']
plt.xticks(arange(len(a)),a)
plt.plot(b)
for xy in zip(a, b):
    plt.annotate(xy[1], xy=xy, xytext
=(-10, 10), textcoords='offset points') plt.show()
報錯:  

出現這個問題是 zip(a,b) 這個裡面的 a 的陣列值型別不能為字串,得為int型別,但是這裡就有個問題,a 陣列中的值不能轉換為int型別,這個怎麼處理呢?我的想法是能不能自己新建一個int型別陣列,長度和 a 一樣,試了一番,還真可以,改正後的程式碼如下:

import matplotlib.pyplot as plt
a = ['a','b','c','d']
b = ['1','2','3','4']
plt.xticks(arange(len(a)),a)
# 新建一個數組
c = np.arange(len(a)) plt.plot(b,marker = '.') for xy in zip(c, b): plt.annotate(xy[1], xy=xy, xytext=(-10, 10), textcoords='offset points') plt.show()
效果圖:


上面用的是 plt.annotate()的方法寫標註,下面還有一種plt.text()的方法,程式碼如下:

import matplotlib.pyplot as plt
a = ['a','b','c','d']
b = ['1','2','3','4']
plt.xticks(arange(len
(a)),a) # 新建一個數組 b = [int(item) for item in b] c = np.arange(len(a)) plt.plot(b,marker = '.') for i in range(len(a)): # 具體引數詳情可以百度下plt.text()這個方法 plt.text(c[i],b[i],a[i]+','+str(b[i]), family='serif', style='italic', ha='right', wrap=True) plt.show()
效果圖:


注:有寫錯的地方,望指教,期待與你的交流。