爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 402|回复: 0

[源代码] Python简易画图教程——绘制散点图

[复制链接]

新浪微博达人勋

发表于 2024-5-28 13:19:42 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
Python画图教程——绘制散点图
先看图片

绘制散点图:比较2组数据变化的相关性
叠加的颜色为发生频率,颜色越集中于y=x线,则说明2组数据相关性越好。
读取数据为excel的两列。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import gaussian_kde
from matplotlib import rcParams


#读取数据
filename_path='测试数据.xlsx'  #读取了相邻两个站点的气温数据
df=pd.read_excel(filename_path)
x_x=df['Tair_f']
y_y=df['TEMP_L']


#计算密度(概率),点越集中,则出现概率越大, 则颜色越深
xy = np.vstack([x_x,y_y])
z = gaussian_kde(xy)(xy)*1000  #*1000:根据密度单位来设定,如果*1000,则频率单位为10^-3
idx = z.argsort()
x, y, z = x_x[idx], y_y[idx], z[idx]
######################################散点图绘图区####################################
#config = {"font.family":'Times New Roman',"font.size":12,"mathtext.fontset":'stix'}
#rcParams.update(config)
plt.rcParams['font.sans-serif']=['simsun'] #用来正常显示中文,无中文可省略
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号,无中文可省略
font_stick={'family':'Times New Roman','size':24,'color':'k'}  #坐标轴刻度字体字号


clevs_pre=np.arange(0,30,5) #设置色带尺标注间隔
pre_clev=np.arange(-10,50,10) #设置刻度间隔
#######绘图########
fig=plt.figure(figsize=(10,8))
ax = fig.add_subplot(111)


sct=ax.scatter(x, y,s=20,c=z,cmap='Spectral_r',marker='.')


print('开始绘制色带尺')
cbar=plt.colorbar(sct,ticks=clevs_pre,shrink=0.9,orientation='vertical',extend='both',pad=0.015,aspect=30) #orientation='horizontal'
cbar.ax.tick_params(labelsize=18)


print('开始绘制坐标轴')
ax.set_xticks(pre_clev)
ax.set_yticks(pre_clev)
ax.set_xticklabels(pre_clev,fontdict=font_stick)
ax.set_yticklabels(pre_clev,fontdict=font_stick)
ax.set_xlim(-12,32)
ax.set_ylim(-12,32)


print('绘制y=x直线')
xxx=np.arange(-20,900)
ax.plot(xxx, xxx, color="k",linewidth=2.5)


print('添加拟合线')
poly = np.polyfit(x_x,y_y, 1)  #多项式拟合
z=np.polyval(poly, x_x)
a="%.3f" % poly[0]
b="%.2f" % poly[1]
print('回归方程为:','y='+a+'x+'+b)
ax.plot(x_x, z, 'r',linewidth=2.5)


fig.show()
fig.savefig('散点图.png',format='png',dpi=300)


散点图.jpg
数据类型.JPG
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表