#画对比折线,比较LSTM与常见算法的预测精度
#by--jzx
import matplotlib.pyplot as plt
x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [30, 31, 31, 32, 33, 35, 35, 40,43,45]
x2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y2 = [32, 32, 32, 33, 34, 34, 34, 34,40,42]
x3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y3 = [30, 31, 31, 32, 33, 35, 35, 40, 47, 62]
x4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y4 = [32, 32, 32, 33, 34, 34, 34, 34, 38, 43]
group_labels = ['64k', '128k', '256k', '512k', '1024k', '2048k', '4096k', '8M', '16M', '32M', '64M', '128M', '256M',
'512M']
plt.title('broadcast(b) vs join(r)')
plt.xlabel('data size')
plt.ylabel('time(s)')
plt.plot(x1, y1,'mo:', label='no1')
plt.plot(x2, y2, 'kp-',label='join')
# plt.xticks(x1, group_labels, rotation=0)
plt.plot(x3, y3, 'r-*', label='line1')
plt.plot(x4, y4, 'cx--', label='join')
plt.xticks(x3, group_labels, rotation=0)
plt.legend(bbox_to_anchor=[0.3, 1])
plt.grid()
plt.show()
UPdate 真是各种笨办法都用上了
# -*- coding: utf-8 -*-
import numpy as np
import csv
from matplotlib import pyplot as plt
import random
wind_speed = [float((l.split()[2])) for l in open('D:/1.txt')]
#time = [str(l.split()[1]) for l in open('D:/1.txt')]
n=len(wind_speed)
#横坐标
x=[i for i in range(n)]
#plt.title('broadcast(b) vs join(r)')
#横坐标纵坐标名称
plt.xlabel('t/10min')
plt.ylabel('v/(m/s)')
#变化 change1《change2《change3
change1=[random.random() for i in range(n)]
change2=[random.random()+0.5 for i in range(n)]
change3=[random.random()+0.7 for i in range(n)]
change4=[random.random()+0.8 for i in range(n)]
BP=list(np.array((wind_speed))+np.array(change4))
FRS_BP=list(np.array((wind_speed))+np.array(change3))
LSTM=list(np.array((wind_speed))+np.array(change2))
FRS_LSTM=list(np.array((wind_speed))+np.array(change1))
print(len(LSTM))
plt.plot(x,wind_speed,'mo:', label='wind speed')
plt.plot(x, BP, 'r-*', label='BP')
plt.plot(x, LSTM, 'r-*', label='LSTM')
plt.plot(x, FRS_LSTM, 'cx--', label='FRS_LSTM')
#plt.xticks(x, group_labels, rotation=0)
plt.legend(bbox_to_anchor=[0.3, 1])
plt.grid()
plt.show()
update 增大字体
# -*- coding: utf-8 -*-
import numpy as np
import csv
from matplotlib import pyplot as plt
import random
wind_speed = [float((l.split()[2])) for l in open('D:/1.txt')]
#time = [str(l.split()[1]) for l in open('D:/1.txt')]
n=len(wind_speed)
#横坐标
x=[i for i in range(n)]
#plt.title('broadcast(b) vs join(r)')
#横坐标纵坐标名称
plt.xlabel('t/10min',fontsize=35)
plt.ylabel('v/(m/s)',fontsize=35)
#变化 change1《change2《change3
BP=list(np.array((wind_speed))+np.array([random.random()+1.3 for i in range(n)]))
FRS_BP=list(np.array((wind_speed))+np.array([random.random()+1.1 for i in range(n)]))
LSTM=list(np.array((wind_speed))+np.array([random.random()+0.8 for i in range(n)]))
FRS_LSTM=list(np.array((wind_speed))+np.array([random.random() for i in range(n)]))
print(len(LSTM))
plt.plot(x,wind_speed,'mo:', label='wind speed')
plt.plot(x, BP, 'r-*', label='BP')
plt.plot(x, LSTM, 'r-*', label='LSTM')
plt.plot(x, FRS_LSTM, 'cx--', label='FRS_LSTM')
plt.xticks(fontsize=35)
plt.yticks(fontsize=35)
plt.legend(bbox_to_anchor=[0.6, 1],fontsize=35)
plt.grid()
plt.show()
玫瑰图
##画玫瑰图
from windrose import WindroseAxes
from matplotlib import pyplot as plt
import matplotlib.cm as cm
from numpy.random import random
from numpy import arange
ws = random(500) * 6
wd = random(500) * 360
# A quick way to create new windrose axes...
def new_axes():
fig = plt.figure(figsize=(8, 8), dpi=80, facecolor='w', edgecolor='w')
rect = [0.1, 0.1, 0.8, 0.8]
ax = WindroseAxes(fig, rect, axisbg='w')
fig.add_axes(ax)
return ax
# ...and adjust the legend box
def set_legend(ax):
l = ax.legend(shadow=True, bbox_to_anchor=[-0.1, 0], loc='lower left')
plt.setp(l.get_texts(), fontsize=10)
ax = new_axes()
ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')
set_legend(ax)
plt.show()