python-matplotlib的一些小练习——东北大学大数据班数据挖掘实训Python基础三
目录
- 题目:练习使用matplotlib 包中的方法绘图。
- 1.通过pandas包将数据scmd_CalculationData.csv读入,从中取出winddirection和windspeed1这2个字段,绘制风速与风向的散点图(风向为横轴,风速为y轴)。(要求:有标题(风速与风向的函数)、横纵坐标的标题、设置网格,保存图片文件命名为1风速与风向的函数.png)
- 2.通过pandas包将数据scmd_CalculationData.csv读入,从中取出windspeed1、power_max、power_min、power和power_dev这5个字段,绘制功率特性的散点图(风速为x轴,其他为y轴)。(要求:有标题(功率特性散点图)、横纵坐标的标题、图例、设置网格,保存图片文件命名为2功率特性散点图.png)
- 3.通过pandas包将数据bz_df_wt.csv读入,从中取出bin_bz_fs<=20的数据,然后取出实际风速bin_bz_fs和实际功率bin_bz_power;再读入bzglqx.csv取出保证风速fs和保证功率gl,绘制功率曲线的对比图(一张图中绘制,横轴为风速,纵轴为功率)。(要求:有标题(实测与设计功率曲线对比)、横纵坐标的标题、图例、设置网格,保存图片文件命名为3实测与设计功率曲线对比.png)
前言
因为本博客是直接导入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

大家好,我是[爱做梦的子浩](https://blog.csdn.net/weixin_43124279),我是东北大学大数据实验班大三的小菜鸡,非常向往优秀,羡慕优秀的人,已拿两个暑假offer,欢迎大家找我进行交流😂😂😂
这是我的博客地址:[子浩的博客https://blog.csdn.net/weixin_43124279]
——
版权声明:本文为CSDN博主「爱做梦的子浩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

浙公网安备 33010602011771号