python-matplotlib的一些小练习——东北大学大数据班数据挖掘实训Python基础三

前言
因为本博客是直接导入markdown文件(jupter写的)生成的,所以会导致分不清代码和输出,如果大家需要清楚的代码和输出,就请下载以下html文件
matplotlibTrain (1).html

题目:练习使用matplotlib 包中的方法绘图。

1.通过pandas包将数据scmd_CalculationData.csv读入,从中取出winddirection和windspeed1这2个字段,绘制风速与风向的散点图(风向为横轴,风速为y轴)。(要求:有标题(风速与风向的函数)、横纵坐标的标题、设置网格,保存图片文件命名为1风速与风向的函数.png)

import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_csv("C:\\Users\\zzh\\Desktop\\dataMiningExperment\\exp3\data\\scmd_CalculationData.csv")
df.head()
Name TimeDate power baro windspeed1 windspeed2 winddirection temp power_max power_min ... grid_std fault_max fault_min fault_std windcha tlqd K_temp md v3 cp
0 1 2016/11/9 13:00 -21.27 997.63 2.81 2.76 226.59 -0.51 43.45 -41.42 ... 0.5 0 0 0 0.05 0.295374 272.64 1.274742 22.188041 -0.001380
1 1 2016/11/9 11:10 -38.70 999.04 3.01 2.97 209.90 -2.11 -19.73 -51.16 ... 0.4 0 0 0 0.04 0.209302 271.04 1.284080 27.270901 -0.002028
2 1 2016/11/9 12:10 -38.05 998.46 3.14 3.10 243.00 -1.40 -11.24 -49.90 ... 0.5 0 0 0 0.04 0.168790 271.75 1.279981 30.959144 -0.001762
3 1 2016/11/9 11:50 -30.16 998.61 3.19 3.12 218.40 -1.65 30.88 -48.64 ... 0.5 0 0 0 0.07 0.197492 271.50 1.281352 32.461759 -0.001331
4 1 2016/11/9 13:20 -27.64 997.26 3.30 3.27 227.41 -0.52 170.75 -48.33 ... 0.4 0 0 0 0.03 0.206061 272.63 1.274316 35.937000 -0.001108

5 rows × 40 columns

winddirection=df["winddirection"]  #从中取出winddirection这个字段
windspeed1=df["windspeed1"]  #从中取出windspeed1这个字段
plt.rc('font', family='SimHei', size=15) #绘图中的中文显示问题,图表字体为SimHei,字号为15
#plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.figure(figsize=(9,8))  
plt.title('风速与风向的函数')  #有标题(风速与风向的函数)
plt.xlabel('风向(°)') #横坐标的标题
plt.ylabel('风速(m/s)') #纵坐标的标题
plt.axis([120, 260, 2, 14]) #设置横纵轴的范围
plt.grid(color='#95a5a6',linestyle='--',linewidth=3,axis='both',alpha=0.4)#设置网格
plt.plot(winddirection,windspeed1, 'ro')
# plt.scatter(winddirection,windspeed1,c='',s=30,marker = 'o',edgecolors='r')  #空心圆
plt.savefig('1风速与风向的函数.png') #保存图片文件命名为1风速与风向的函数.png

在这里插入图片描述

2.通过pandas包将数据scmd_CalculationData.csv读入,从中取出windspeed1、power_max、power_min、power和power_dev这5个字段,绘制功率特性的散点图(风速为x轴,其他为y轴)。(要求:有标题(功率特性散点图)、横纵坐标的标题、图例、设置网格,保存图片文件命名为2功率特性散点图.png)

windspeed1=df["windspeed1"]  #从中取出windspeed1这个字段
power_max=df['power_max']
power_min=df['power_min']
power=df['power']
power_dev=df['power_dev']
plt.figure(figsize=(9,8))  
plt.title('功率特性的散点图')  #有标题(功率特性的散点图)
plt.xlabel('风向(°)') #横坐标的标题
plt.ylabel('功率(kW)') #纵坐标的标题
plt.axis([0, 20, -200, 1600]) #设置横纵轴的范围
plt.legend(['最大值','最小值','平均值','标准值']) #设置图例
plt.grid(color='#95a5a6',linestyle='--',linewidth=3,axis='both',alpha=0.4) #设置网格
plt.plot(windspeed1,power_max,'ro')  #最大值
plt.plot(windspeed1,power_min,'ko')  #最小值
plt.plot(windspeed1,power,'bo')      #平均值
plt.plot(windspeed1,power_dev,'go')  #标准差
# plt.plot(windspeed1,power_max,'ro',windspeed1,power_min,'ko',windspeed1,power,'bo',windspeed1,power_dev,'go') #合并画法
plt.savefig('2功率特性散点图.png') #保存图片文件命名为2功率特性散点图.png

在这里插入图片描述

3.通过pandas包将数据bz_df_wt.csv读入,从中取出bin_bz_fs<=20的数据,然后取出实际风速bin_bz_fs和实际功率bin_bz_power;再读入bzglqx.csv取出保证风速fs和保证功率gl,绘制功率曲线的对比图(一张图中绘制,横轴为风速,纵轴为功率)。(要求:有标题(实测与设计功率曲线对比)、横纵坐标的标题、图例、设置网格,保存图片文件命名为3实测与设计功率曲线对比.png)

df1=pd.read_csv("C:\\Users\\zzh\\Desktop\\dataMiningExperment\\exp3\data\\bz_df_wt.csv")
df1.tail()
binNum bin_bz_cp bin_bz_fs bin_bz_power bin_bz_size
46 46 0.0 23.0 1474.895 0.0
47 47 0.0 23.5 1474.895 0.0
48 48 0.0 24.0 1474.895 0.0
49 49 0.0 24.5 1474.895 0.0
50 50 0.0 25.0 1474.895 0.0
bin_bz_fs=df1[df1.bin_bz_fs<=20]
bin_bz_fs.tail()
binNum bin_bz_cp bin_bz_fs bin_bz_power bin_bz_size
36 36 0.0 18.0 1474.895 0.0
37 37 0.0 18.5 1474.895 0.0
38 38 0.0 19.0 1474.895 0.0
39 39 0.0 19.5 1474.895 0.0
40 40 0.0 20.0 1474.895 0.0
bin_bz_fs=df1['bin_bz_fs'] #取出实际风速bin_bz_fs
bin_bz_power=df1['bin_bz_power'] #取出实际功率bin_bz_power
df2=pd.read_csv("C:\\Users\\zzh\\Desktop\\dataMiningExperment\\exp3\data\\bzglqx.csv")
df2.head()
0 0.1
0 0.5 0.0
1 1.0 0.0
2 1.5 0.0
3 2.0 0.0
4 2.5 0.0
fs=df2.iloc[:,0] #取出保证风速fs
gl=df2.iloc[:,1] #取出保证功率gl
plt.figure(figsize=(9,8))  
plt.xlabel('风速(°)') #横坐标的标题
plt.ylabel('纵轴(m/s)') #纵坐标的标题
plt.title('实测与设计功率曲线对比')  #有标题(实测与设计功率曲线对比)
plt.axis([ 0, 20,-200, 1600]) #设置横纵轴的范围
plt.legend(['实测功率曲线','设计功率曲线']) #设置图例
plt.grid(color='#95a5a6',linestyle='--',linewidth=3,axis='both',alpha=0.4) #设置网格
plt.plot(bin_bz_fs,bin_bz_power, 'ro', bin_bz_fs,bin_bz_power, 'r')#实测功率曲线
plt.plot(fs,gl, 'go', fs,gl, 'g')#设计(保证)功率曲线
plt.savefig('实测与设计功率曲线对比.png') #保存图片文件命名为3实测与设计功率曲线对比.png

在这里插入图片描述

posted @ 2019-12-03 18:22  爱做梦的子浩  阅读(352)  评论(0编辑  收藏  举报