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

我们继续来把简单的图形丢到极坐标,这次是气泡图和柱状图,临摹的对象是澎湃美数课

这个图看起来很好看,原理其实很简单,把柱状图和气泡图从笛卡尔坐标系中转移到极坐标系中来就OK

我们开始本次的临摹吧

本期的主题如下:熟悉一下柱状图的一些参数

熟悉一下散点图的一些参数

熟悉一下极坐标系的规则(高中内容啦)

熟悉一下这么自定义字体

熟悉一下网格线

我们先来说说及极坐标内,一个点位置该怎么表示:(笔者很懒惰,就直接从网上复制图片来教学了)

从图上可以看出来,x轴为那个带箭头的线,matplotlib中也一样,极坐标的起点在同样的位置,不过在matplotlib里 x表示的是角度,y表示的长度,所以确定好夹角θ,和半径长度就OK

我们在看看 美术课里这个样图,一排上,一共有15个圆,且最后一个和第一个没有在90°与270°的位置上,所以我们要把圆分成36份,也就是每份是2π/36

这样我们就可以确定等差数列了,我们以3/2π为起点,不断加2π/36

我们来画第一圈圆

import numpy as np

import matplotlib.pyplot as plt

S1=np.array([2572,2483,2302,2125,1990,1853,1694,1400,1134,982,869,776,668,584,480])*2

#为了把图做大一点,把圆扩大了一倍

x1=[(3/2)*np.pi+np.pi/(len(S1)+1)*(i+1) for i in range(2*(len(S1)+1)) if i

# len(S1)+1 等于16 , 因为python里计数从0开始,所以i+1起始加一,

# 又因为我们只有15个圆,所以我们生成的位置Y也只要十五个,所以加入限制条件<15

y1=[180 for i in range(2*(len(S1)+1)) if i

# 我们继续生成15个y值,这样一来,我们三个参数都确定了,气泡了x轴位置,y轴位置,以及气泡大小

# 下面开始画图

fig=plt.figure(figsize=(13.44*2,7.5*2),facecolor='w')#建立一个画布

ax = fig.add_subplot(111,projection='polar',facecolor='w')#建立一个坐标系,projection='polar'表示极坐标

ax.scatter(x=x1,y=y1,s=S1,color=(180/255,204/255,30/255),alpha=0.5,linewidths=0) #不要气泡有边框线,我们把linewidth设置为0

plt.ylim(0,220) #限制y轴的显示大小

散点图的参数:

1. x,y表示点位置,s表示点的大小,

2. color表示颜色,可以传入一个元组,对RGB值归一

3. alpha表示的是透明度第一圈圆

S2=np.array([2028,1976,1962,1925,1904,1833,1730,1577,1524,1493,1475,1589,1511,1505,1524])*2

x2=[(0)*np.pi+np.pi/(len(S1)+1)*(i+1) for i in range(2*(len(S1)+1))]

y2=[130 for i in range(2*(len(S1)+1)) if i

我们用同样的方式计算出第二圈圆的位置,画出来

接着我们把柱状图也丢进极坐标掰弯

柱状图可以用四个参数来确定每个柱子的位置

H1=[56,55,54,52,51,50,49,47,43,40,37,34,31,28,24]

W1=[0.05 for i in range(2*(len(S1)+1)) if i

B=[30 for i in range(2*(len(S1)+1)) if i

ax.bar(x=x1, height=H1, width=W1,bottom=B,color=(255/255,171/255,1/255))

x表示x轴的位置,

bottom表示柱子最底端的位置

height表示 柱子的长度

width表示柱子的宽度

最后我们把 坐标上的线,还有坐标轴上的文字去掉,以及背后画个网格线,

ax.spines['polar'].set_visible(False) #去掉坐标轴的为外面一层 粗的线

plt.grid(color='gray', linestyle=':', linewidth=1,which='major',axis='x',alpha=0.1) #添加网格线

ax.set_yticks([]) #去掉 y轴上的文字

ax.set_xticks(x2) # 应为网格线是跟着x轴走的,如果去掉x轴的话,网格线也就没了

ax.tick_params(axis='x',labelsize=0) #因为我们保留了x轴,x轴上的文字会存在,所以把x轴上的文字大小设置为0

最后我们选择喜欢的字体,然后打上数据标签,并保存

import matplotlib.font_manager

font=matplotlib.font_manager.FontProperties(fname='D:\\Fonts\\English\\Museo700-Regular.otf')

for i in range(len(x1)):

ax.text(x=x1[i],y=y1[i],s=S1[i],color='gray',ha='center', va= 'center',fontsize=12,fontproperties=font)

for i in range(len(x1)):

ax.text(x=x1[i],y=y2[i],s=S2[i],color='gray',ha='center', va= 'center',fontsize=12,fontproperties=font)

for i in range(len(x1)):

ax.text(x=x1[i],y=H1[i]+40,s="{}%".format(H1[i]) ,color='gray',ha='center', va= 'center',fontsize=12,fontproperties=font)

fig.savefig('D:\\test.png',dpi=400,bbox_inches='tight',transparent=False)

裁掉不要的部分

笔者比较懒惰,就在搞那些文字与标题啦,如果要加文字与标题的话可以保存eps格式的矢量图文件,放在AI里进行深度的加工和处理哦

就这样 完结 撒花✿✿ヽ(°▽°)ノ✿

基础的部分可以看看这个文章:Mono Lee:Python入门向:Matplotlib自救指南篇,从此做图不求人(一)​zhuanlan.zhihu.comv2-22ad815b840da9ff6b2ba2549f59a22f_180x120.jpg

其他在极坐标里的画图可以看看这个Mono Lee:用Python把图做的好看点:用Matplotlib画个环形图​zhuanlan.zhihu.comv2-11b57af0d696c9bd780b977e45d93463_180x120.jpgMono Lee:用Python把图做的好看点:用Matplotlib画个玫瑰图​zhuanlan.zhihu.comv2-93ed5a7d34bab3f2a3c10edb87471044_180x120.jpgMono Lee:用Python把图做的好看点:用Matplotlib做个像麦肯锡一样的条形图​zhuanlan.zhihu.comv2-306877dd711f31a1ff0a0119c1da6610_180x120.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.NET Core一个接口的多个实现如何基于当前HTTP请求注册

前言假设我们有三个Service类实现了同一接口&#xff0c;示例代码如下&#xff1a;public interface IService { } public class ServiceA : IService { } public class ServiceB : IService { } public class ServiceC : IService { }我们希望在运行时使用依赖注入指定其具体…

pytorch forward_【Pytorch部署】TorchScript

TorchScript是什么&#xff1f;TorchScript - PyTorch master documentation​pytorch.orgTorchScript是一种从PyTorch代码创建可序列化和可优化模型的方法。任何TorchScript程序都可以从Python进程中保存&#xff0c;并加载到没有Python依赖的进程中。我们提供了一些工具来增量…

兼容ie8 rgba()用法

今天遇到了一个问题&#xff0c;要在一个页面中设置一个半透明的白色div。这个貌似不是难题&#xff0c;只需要给这个div设置如下的属性即可&#xff1a; background: rgba(255,255,255,.1); 但是要兼容到ie8。这个就有点蛋疼了。因为ie8不支持rgba()函数。下面我们总结一下rgb…

python中的标识符能不能使用关键字_Python中的标识符不能使用关键字

Python中的标识符不能使用关键字答&#xff1a;√智慧职教: 检查客室座椅外观良好&#xff0c;确认?无破损答&#xff1a;坐垫 靠背关于投标报价时综合单价的确定&#xff0c;下列做法中正确的是()答&#xff1a;以项目特征描述为依据确定综合单价城市总体规划调查时&#xff…

C# WPF实战项目升级了

概述之前用Caliburn.Micro搭建的WPF实战项目&#xff0c;CM框架选用了 3.0.3&#xff0c;实际上CM框架目前最新版已经到4.0。173了&#xff0c;所有很有必须升级一下项目了. 本来打算把平台框架也直接升级到.NET 6 的&#xff0c;但是项目里面很多库不支持最新的平台版本&#…

ArcGIS Engine开发模板及C#代码

目 录 1. 模板 2. 代码 1. 模板 以下为AE开发软件自带的模板及代码,开发工具为VS 2012+ArcGIS Engine 10.2。 2. 代码 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; us…

高级iOS面试题

非标准答案 2 1: 类方法是可以直接通过类名直接调用&#xff0c;无需进行实例化对象。类方法是以开头2. 实例方法&#xff0c;需要显示实例化对象&#xff0c;为对象分配堆栈空间&#xff0c;并通过对象实例调用实例方法3. RUNTIME 是在程序运行过程动态对实例对象进行操作&…

dotTrace 6.1帮你理解SQL查询如何影响应用性能

dotTrace是JetBrains公司旗下的一款.NET应用程序性能瓶颈检测工具。该工具是ReSharper旗舰版的一部分&#xff0c;也可以单独安装。近日&#xff0c;dotTrace 6.1发布&#xff0c;主要增加了人们期待已久的SQL查询性能分析&#xff0c;开发人员可以通过它获得特定查询的执行时间…

mysql申请审核系统_Mysql审核工具archery

Mysql审核工具archery系统&#xff1a;Centos6.8ip:192.168.122.150安装Python和virtualenv编译安装[rootwww ~]# yum install wget gcc make zlib-devel openssl openssl-devel[rootwww src]# wget "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz"[…

iOS——Core Animation 知识摘抄(二)

阴影 主要是shadowOpacity 、shadowColor、shadowOffset和shadowRadius四个属性 shadowPath属性 我们已经知道图层阴影并不总是方的&#xff0c;而是从图层内容的形状继承而来。这看上去不错&#xff0c;但是实时计算阴影也是一个非常消耗资源的&#xff0c;尤其是图层有多个子…

Blazor University (11)组件 — 替换子组件的属性

原文链接&#xff1a;https://blazor-university.com/components/replacing-attributes-on-child-components/替换子组件的属性源代码[1]到目前为止&#xff0c;我们已经了解了如何创建代码生成的属性[2]&#xff0c;以及如何捕获意外参数[3]。除了这两种技术之外&#xff0c;B…

HTTPS实现原理

HTTPS实现原理 HTTPS&#xff08;全称&#xff1a;Hypertext Transfer Protocol over Secure Socket Layer&#xff09;&#xff0c;是以安全为目标的HTTP通道&#xff0c;简单讲是HTTP的安全版。即HTTP下加入SSL层&#xff0c;HTTPS的安全基础是SSL。其所用的端口号是443。…

C#使用ServiceController控制windows服务

C#中,使用ServiceController类控制windows服务,使用之前要先添加引用:System.ServiceProcess,然后在命名空间中引用:using System.ServiceProcess。下面举例获取本机的所有已安装的Windows服务和应用,然后查找某一应用活服务是否已经安装。 代码: using System; using S…

电信aep平台是什么意思_江苏天鼎证券:股票平台跳水是什么意思?股票为什么会跳水?...

相信很多新手在刚玩股票的时候会遇到很多的专业的基础知识不能理解&#xff0c;比如什么是跳水?为什么会跳水呢?接下来就为大家详细来说股票的跳水以及为何会跳水。一、股票平台跳水是什么意思?股票跳水通常指股价在较短的时间内&#xff0c;出现从高位下降到低位的现象。出…

mysql mgr简介_MySQL Group Replication(MGR)使用简介与注意事项

MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案&#xff0c;以插件形式提供。MGR基于分布式paxos协议&#xff0c;实现组复制&#xff0c;保证数据一致性。内置故障检测和自动选主功能&#xff0c;只要不是集群中的大多数节点都…

python beautifulsoup4 table tr_python BeautifulSoup解析表

牧羊人nacy这是通用的工作示例(表数据)标记。它返回带有内部列的行的列表。第一行仅接受一个(表头/数据)。def tableDataText(table): rows [] trs table.find_all(tr) headerow [td.get_text(stripTrue) for td in trs[0].find_all(th)] # header row i…

clob字段怎么导出_Oracle 11g及12c+版本下为啥有些表不能exp导出?

【引言】今天有同事问了一个问题&#xff0c;在Oracle 11g下&#xff0c;为啥exp方式导出一个用户的数据表&#xff0c;在imp后却发现有些表并没有迁移过来。经查阅官方文档&#xff0c;发现和Oracle11g及12c 版本相对于10g&#xff0c;有一个新特性deferred_segment_creation(…

C# 读写二进制文件

读写二进制文件的一种选择是直接使用流类型&#xff1b;在这种情况下&#xff0c;最好使用字节数组执行读写操作。另一个选择是使用为这个场景定义的读取器和写入器&#xff1a;BinaryReader和BinaryWriter。使用它们的方式类似于使用 StreamReader 和 StreamWriter&#xff0c…

推荐系统(1)--splitting approaches for context-aware recommendation

开篇语&#xff1a; 大一的时候。在实验室老师和师兄的带领下。我開始接触推荐系统。时光匆匆&#xff0c;转眼已是大三&#xff0c;因为大三课甚是少。于是便有了时间将自己所学的东西做下总结。第一篇博客。献给过去三年里带我飞的老师和师兄们&#xff0c;感谢你们的无私帮助…

python 百度云文字识别 proxy_python使用百度文字识别功能方法详解

介绍python使用百度智能去的文字识别功能&#xff0c;可以识别截图中的文&#xff0c;登陆路验证码等等。&#xff0c; 登陆百度智能云&#xff0c;选择产品服务。选择“人工智能”---文字识别。点击创建应用。 如图下面有关于“文字识别”的各类信息&#xff0c;如通用文字识别…