python matplotlib繪圖時圖例顯示問題

在使用python matplotlib庫繪製數據圖時,需要使用圖例標註數據類別,但是傳參時,會出現圖例解釋文字只顯示第一個字符,需要在傳參時在參數後加一個逗號(應該是python語法,加逗號,纔可以把參數理解爲元組類型吧),就可解決這個問題,示例如下

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator 
from pylab import mpl

xmajorLocator = MultipleLocator(24 * 3) #將x軸主刻度標籤設置爲24 * 3的倍數
ymajorLocator = MultipleLocator(100 * 2) #將y軸主刻度標籤設置爲100 * 2的倍數 

# 設置中文字體
mpl.rcParams['font.sans-serif'] = ['SimHei']

# 導入文件數據
data = np.loadtxt('H:/dataset/爸爸去哪兒/統計數據_每小時_ba.csv', delimiter=',', dtype=int)

# 截取數組數據
x = data[:, 0]
y = data[:, 1]


plt.figure(num=1, figsize=(8, 6))

ax = plt.subplot(111)
ax.xaxis.set_major_locator(xmajorLocator) 
ax.yaxis.set_major_locator(ymajorLocator) 
ax.xaxis.grid(True, which='major') #x座標軸的網格使用主刻度
ax.yaxis.grid(True, which='major') #x座標軸的網格使用主刻度

plt.xlabel('時間索引')
plt.ylabel('活動頻數')
plt.title('折線圖')
plt.xlim(0, 1152)
plt.ylim(0, 2200)
#plt.plot(x, y, 'rs-')
line1 = ax.plot(x, y, 'b.-')
ax.legend(line1, ('微博'))
plt.show()
顯示效果如下

代碼修改

from pylab import mpl

xmajorLocator = MultipleLocator(24 * 3) #將x軸主刻度標籤設置爲24 * 3的倍數
ymajorLocator = MultipleLocator(100 * 2) #將y軸主刻度標籤設置爲100 * 2的倍數 

# 設置中文字體
mpl.rcParams['font.sans-serif'] = ['SimHei']

# 導入文件數據
data = np.loadtxt('H:/dataset/爸爸去哪兒/統計數據_每小時_ba.csv', delimiter=',', dtype=int)

# 截取數組數據
x = data[:, 0]
y = data[:, 1]


plt.figure(num=1, figsize=(8, 6))

ax = plt.subplot(111)
ax.xaxis.set_major_locator(xmajorLocator) 
ax.yaxis.set_major_locator(ymajorLocator) 
ax.xaxis.grid(True, which='major') #x座標軸的網格使用主刻度
ax.yaxis.grid(True, which='major') #x座標軸的網格使用主刻度

plt.xlabel('時間索引')
plt.ylabel('活動頻數')
plt.title('折線圖')
plt.xlim(0, 1152)
plt.ylim(0, 2200)
#plt.plot(x, y, 'rs-')
line1 = ax.plot(x, y, 'b.-')
ax.legend(line1, ('微博',)) # 多加一個逗號
plt.show()

顯示效果如下


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章