1.matplotlib
首先看一下这个静态图绘制模块
-
静态图形处理
-
数据分析三剑客
- Numpy : 主要为了给pandas提供数据源
- pandas : 更重要的数据结构
- matplotlib : 静态图形处理
海滨城市温度分析案例
-
导包
# 导包 import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
-
导入数据(各个海滨城的数据)
# 导入数据(各个海滨城市数据) ferrara1 = pd.read_csv('./ferrara_150715.csv') ferrara2 = pd.read_csv('./ferrara_250715.csv') ferrara3 = pd.read_csv('./ferrara_270615.csv') ferrara=pd.concat([ferrara1,ferrara1,ferrara1],ignore_index=True) torino1 = pd.read_csv('./torino_150715.csv') torino2 = pd.read_csv('./torino_250715.csv') torino3 = pd.read_csv('./torino_270615.csv') torino = pd.concat([torino1,torino2,torino3],ignore_index=True) ...
-
去除没用的列
city_list = [faenza,cesena,piacenza,bologna,asti,ravenna,milano,mantova,torino,ferrara] for city in city_list: city.drop(labels='Unnamed: 0',axis=1,inplace=True)
-
构造数据,显示最高温度与离海远近的关系
max_temp = [] dist_list = [] for city in city_list: temp = city["temp"].max() max_temp.append(temp) dist = city['dist'][0] dist_list.append(dist) plt.scatter(dist_list,max_temp) # 传入两个列表 plt.xlabel("距离") # x plt.xlabel("最高温度") # y plt.title("最高温度和距离之间的关系") # 标题
2.创建算法模型
2.1 线性回归算法模型
-
多用于预测
-
sklearn.linear_model
- 创建一个温度模型,让其可以根据一个距离预测出该距离对应城市的最高温度.
#样本数据的提取 feature = np.array(dist_list) # 数组形式的特征数据 target = np.array(max_temp) # 数组形式的目标数据 # 线性回归算法模型 y = ax + b --> 通过训练求出最匹配的a和b from sklearn.linear_model import LinearRegression linear = LinearRegression() # 实例化算法模型 # 训练模型 linear.fit(feature.reshape(-1,1),target) # 特征数据必须是二维的 !!! # 基于训练好的模型对象实现预测功能 linear.predict([[226],[333]])
-
绘制关系图
# 使用多个点绘制最高温度和距离之间的关系 x = np.linspace(0,400,num=100) y = linear.predict(x.reshape(-1,1)) plt.scatter(dist_list,max_temp) plt.scatter(x,y) plt.xlabel('距离') plt.ylabel('最高温度') plt.title('最高温度和距离直接的关系')