0
- 生成横坐标
- 在一张图上画多条曲线
- shape
'''
Plot the Prediction using Different Regression Model
'''
lw = 2 # linewidth
x_data = np.linspace(1,200,200)
print(x_data.shape,test_tar.shape)
plt.scatter(x_data, test_tar[:,0], color='darkorange', label='data')
plt.plot(x_data, rf_pred, color='navy', lw=lw, label='Random Forest')
plt.plot(x_data, sv_pred, color='c', lw=lw, label='SVR')
plt.plot(x_data, adb_pred, color='cornflowerblue', lw=lw, label='Decision Tree w/ AdaBoost')
plt.xlabel('data')
plt.ylabel('target')
plt.title('Plot the Prediction using Different Regression Model')
plt.legend()
plt.show()
1 画散点+直线图的小例子「转,侵删」
import numpy as np
import matplotlib.pyplot as plt
import random
# 数据量。
SIZE = 13
# 纵轴数据。np.linspace 返回一个一维数组,SIZE指定数组长度。
# 数组最小值是-6,最大值是6。所有元素间隔相等。整个数组是
# 个等差数列。
Y = np.linspace(-6, 6, SIZE)
# 横轴数据。
X = np.linspace(-2, 3, SIZE)
fig = plt.figure()
# 画图区域分成1行1列。选择第一块区域。
ax1 = fig.add_subplot(1,1, 1)
# 标题
ax1.set_title("SCATTER PLOT")
# 让散点图的数据更加随机。
random_x = []
random_y = []
for i in range(SIZE):
random_x.append(X[i] + random.uniform(-1, 1))
for i in range(SIZE):
random_y.append(Y[i] + random.uniform(-1, 1))
RANDOM_X = np.array(random_x) # 散点图的横轴。
RANDOM_Y = np.array(random_y) # 散点图的纵轴。
# 画散点图。
ax1.scatter(RANDOM_X, RANDOM_Y)
# 横轴名称。
ax1.set_xlabel("x")
# 纵轴名称。
ax1.set_ylabel("y")
# 直线图
ax1.plot(X, Y)
plt.show()
image.png
My code
# plot 2
target_data = sort_combine['True_data']
output_data = sort_combine['Out_data']
plt.plot(x_indx, target_data)
plt.scatter(x_indx, output_data, marker = 'x', color = 'm', label='output')
plt.show()
例子2 加图例
# with legend
f2 = plt.figure(2)
idx_1 = find(label==1)
p1 = plt.scatter(x[idx_1,1], x[idx_1,0], marker = 'x', color = 'm', label='1', s = 30)
idx_2 = find(label==2)
p2 = plt.scatter(x[idx_2,1], x[idx_2,0], marker = '+', color = 'c', label='2', s = 50)
idx_3 = find(label==3)
p3 = plt.scatter(x[idx_3,1], x[idx_3,0], marker = 'o', color = 'r', label='3', s = 15)
plt.legend(loc = 'upper right')
# 画多个图python不需要“hold on”
image.png
python matplotlib库
目录
网友评论