搬运的搬运的搬运的!

忘了从哪里参考的了,储存一下o(* ̄▽ ̄*)ブ

定义函数后期调用,这样在一页多图的时候代码能短一点。

1、定义函数

#定义函数
def tar(ax,r,std):ax.set_thetalim(thetamin=0, thetamax=90)r_small, r_big, r_interval=0,1.5+0.1,0.5  #横纵坐标范围,最小值 最大值 间隔ax.set_rlim(r_small,r_big)rad_list=[0,0.2,0.4,0.6,0.7,0.8,0.85,0.9,0.95,0.99,1] #需要显示数值的主要R的值minor_rad_list=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.65,0.7,0.75,0.8,0.85,0.86,0.87,0.88,0.89,0.9,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,1] #需要显示刻度的次要R的值angle_list = np.rad2deg(np.arccos(rad_list))angle_list_rad=np.arccos(rad_list)angle_minor_list = np.arccos(minor_rad_list)ax.set_thetagrids(angle_list, rad_list)for i in np.arange(r_small, r_big, r_interval):if i ==1:ax.text(0, i, s='\n' + 'REF', ha='center', va='top') #text的第一个坐标是角度(弧度制),第二个是距离else:ax.text(0, i, s='\n' + str(i), ha='center', va='top') ax.text(np.pi / 2, i, s=str(i) + '  ',ha='right', va='center') ax.set_rgrids([])labels = ax.get_xticklabels() + ax.get_yticklabels()ax.grid(False)angle_linewidth,angle_length,angle_minor_length=0.8,0.02,0.01tick = [ax.get_rmax(), ax.get_rmax() * (1 - angle_length)]tick_minor = [ax.get_rmax(), ax.get_rmax() * (1 - angle_minor_length)]for t in angle_list_rad:ax.plot([t, t], tick, lw=angle_linewidth, color="k")  # 第一个坐标是角度(角度制),第二个是距离for t in angle_minor_list:ax.plot([t, t], tick_minor, lw=angle_linewidth, color="k")  # 第一个坐标是角度(角度制),第二个是距离# 然后开始绘制以REF为原点的圈,可以自己加圈#circle = plt.Circle((1, 0), 0.25, transform=ax.transData._b, facecolor=(0, 0, 0, 0), edgecolor='gray',linestyle='--', linewidth=0.8)#ax.add_artist(circle)# 绘制以原点为圆点的圆圈:circle4 = plt.Circle((0, 0), 0.5, transform=ax.transData._b, facecolor=(0, 0, 0, 0), edgecolor='grey',linestyle='--', linewidth=1.0)circle5 = plt.Circle((0, 0), 1, transform=ax.transData._b, facecolor=(0, 0, 0, 0), edgecolor='grey',linestyle='-', linewidth=1.5)circle6 = plt.Circle((0, 0), 1.5, transform=ax.transData._b, facecolor=(0, 0, 0, 0), edgecolor='grey',linestyle='--', linewidth=1.0)ax.add_artist(circle4)ax.add_artist(circle5)ax.add_artist(circle6)#ax.set_xlabel('Normalized')ax.text(np.deg2rad(40), 1.75, s='Correlation', ha='center', va='bottom', rotation=-45)  # 这里的网格包括:以原点为圆点的圆圈。首先绘制从原点发散的线段,长度等于半径ax.plot([0,np.arccos(0.4)],[0,3],lw=1,color='gray',linestyle='--')ax.plot([0,np.arccos(0.8)],[0,3],lw=1,color='gray',linestyle='--')# 画点,参数一相关系数,参数二标准差 ax.plot(np.arccos(r[0]), std[0], 'o',color='r',markersize=10, label='2')ax.text(np.arccos(r[0]-0.05), std[0], s='2', c='r',fontsize=13) # 标数字,可不要ax.plot(np.arccos(r[1]), std[1], 'o',color='g',markersize=10, label='3')ax.text(np.arccos(r[1]-0.05), std[1], s='3',c='g', fontsize=13)ax.set_ylabel('Std (Normalized)',labelpad=32)

2、绘图 ,子图1*2

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import cmapsplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号#绘图
fig=plt.figure(figsize=(12,8),dpi=300)
plt.rc('font',family='Arial',size=13)#调用函数
ax1=fig.add_subplot(121,projection='polar')
ax1.text(0.6,0.1,'(a)',fontsize=15)
tar(ax1,r1,st1)ax2=fig.add_subplot(122,projection='polar')
ax2.text(0.6,0.1,'(b)',fontsize=15)
tar(ax2,r2,st2)plt.savefig('D:/talor.jpg',bbox_inches="tight",dpi=300)
plt.show()

结果:(例图没画点也没有子图)


2023.4.12更新:

多个模式的情况,可更改定义函数中描点的代码(如下),其余不变。

# 画点,参数一相关系数,参数二标准差 cdd1_ave_r,cdd1_ave_std_ratio
for i in range(1,r.shape[0]+1):ax.plot(np.arccos(r[i-1]), std[i-1], 'o',color='b',markerfacecolor='none',markersize=4, label=str(i)+' '+models[i-1],zorder=1)ax.text(np.arccos(r[i-1]-0.02), std[i-1], s=str(i), c='b',fontsize=8,zorder=1)# markerfacecolor='none',空心圆,删掉为实心圆# label为数字+模式名,models为包含所有模式名的list# zorder=1,空心圆会被泰勒图内灰线盖住,zorder设置级别,小值会被大值覆盖。# 同时从32行开始,每个circle命令的最后都加上zorder=0.

在图的下方绘制【数字+模式名】图例:

ax1.legend(loc=3, # 位置bbox_to_anchor=(-0.2,-0.65), # -0.2:离画面左边缘的距离;-0.65:离画面下边缘的距离borderaxespad = 0., # 锚点(bbox_to_anchor)与loc指定的框架部分之间的距离ncol=5, # 每行图例的个数frameon=False, # 不要边框)

完结撒花~

python 泰勒图相关推荐

  1. python气象处理与绘图_Python气象数据处理与绘图(18):泰勒图

    泰勒图绘制的核心思想是设计一个只有第一象限的极坐标,并将方差,相关系数进行捆绑,通过转化为极坐标系坐标进行绘制.为了实现泰勒图的绘制,我设计了两个函数: set_tayloraxes(fig, loc ...

  2. 超干货 | 泰勒图(Taylor diagram)绘制方法大汇总

    近日,有小伙伴私信小编关于泰勒图(Taylor diagram) 的绘制方法,小编也进行了相关资料查询,那么,今天这篇推文借给大家介绍一下如何绘制泰勒图(Taylor diagram),具体内容如下: ...

  3. gdp python 变迁动图_19602018年世界各国GDP排名变化Python动图实现

    上一期用MATLAB实现了世界各国GDP排名变化的动态图:1960-2018年世界各国GDP排名变化--Matlab动图实现.今天在这里用Python实现一下. 数据来源: https://data. ...

  4. python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力

    Python的GUI简易界面设计案例 测测你的反应力      作为初次接触代码编程的你,是不是觉得Python程序除了"码"就是"字"即使是有趣的程序除了烧烧 ...

  5. Python 读取图,旋转,缩放(PIL, matplotlib)

    Python 读取图,旋转,缩放(PIL, matplotlib) 2017-05-03 12:54 1133人阅读 评论(0) 收藏 举报  分类: python(20)  版权声明:本文为博主原创 ...

  6. python画气泡图_​用Python把图做的好看点:用Matplotlib画个好看的气泡图

    我们继续来把简单的图形丢到极坐标,这次是气泡图和柱状图,临摹的对象是澎湃美数课 这个图看起来很好看,原理其实很简单,把柱状图和气泡图从笛卡尔坐标系中转移到极坐标系中来就OK 我们开始本次的临摹吧 本期 ...

  7. python 三维图直方图_Python | 阶梯直方图

    python 三维图直方图 A histogram is a graphical technique or a type of data representation using bars of di ...

  8. python matplotlib图中插入表格

    python matplotlib图中插入表格 解决问题 示例代码 结果 解决问题 在matplotlib画的图里插入表格数据.使用到pyplot和gridspec函数. 示例代码 #导入库 impo ...

  9. python画简便的图-最适合小白学的花色玩Python折线图|画个天气预报

    原标题:最适合小白学的花色玩Python折线图|画个天气预报 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业 ...

最新文章

  1. 美卫星拍最详细3D地图 覆盖地球99%大陆
  2. 第十九章:集合视图(二十一)
  3. Redhat EL 5.3上安装Cacti(4)- 编译安装rrdtool及安装配置snmp
  4. 【工具】更新云文档办公利器汇总,腾讯新增批量上传多文件上传,云文档对比测试报告...
  5. 关于笔记本安装parrot和kali的一些问题(花屏,息屏,屏幕不能休眠)
  6. 过直线上一点画垂线图_苏教版四年级数学上册8.5认识垂直、点到直线的距离微课视频 | 练习...
  7. Atcoder Keyence Programming Contest 2020 D - Swap and Flip
  8. ios调用restful接口_做iOS上最好的REST API测试App
  9. 操作系统上机作业--实现shell(2)(多进程)
  10. Safari browser and asp.net Menu control (asp:Menu)
  11. 【java基础知识】java.util.LinkedHashMap cannot be cast to com.XXX.XXX
  12. Bootstraptable源码
  13. mysql 超时连接错误码_mysql链接超时错误
  14. 里皮正式告别国足:我尽了最大努力让球队成长
  15. 直线检测原理matlab,Hough变换 直线检测原理及其Matlab实现
  16. python自动填表单_用python-webdriver实现自动填表
  17. linux安装Python 以及Python包
  18. Fréchet Inception Distance(FID)
  19. IDEA中使用Git,文件不同颜色代表的含义
  20. 训练集,验证集,测试集(以及为什么要使用验证集?)(Training Set, Validation Set, Test Set)

热门文章

  1. g1gc调优的一次实战记录
  2. java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
  3. 论文精度 —— 2017 ACM《Globally and Locally Consistent Image Completion》
  4. 英特尔i9或重燃核心大战 VR淡出电脑展
  5. Sentry 开发者贡献指南 - SDK 开发(事件负载)
  6. 视频推流技术_ai视频流的最新技术进步
  7. 推荐系统1--协同过滤
  8. Memkind 例程1 调用memkind_malloc()分配内存
  9. 经常玩电脑正确的坐姿_如何保持正确坐姿?(多图)
  10. python3 django1.10 使用mysql服务器