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.com
其他在极坐标里的画图可以看看这个Mono Lee:用Python把图做的好看点:用Matplotlib画个环形图zhuanlan.zhihu.comMono Lee:用Python把图做的好看点:用Matplotlib画个玫瑰图zhuanlan.zhihu.comMono Lee:用Python把图做的好看点:用Matplotlib做个像麦肯锡一样的条形图zhuanlan.zhihu.com
python画气泡图_用Python把图做的好看点:用Matplotlib画个好看的气泡图相关推荐
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python模型预测_用Python如何进行预测型数据分析
数据分析一般分为探索性数据分析.验证型数据分析和预测型数据分析.上一篇讲了如何用Python实现验证型数据分析(假设检验),文章链接:转变:用Python如何实现"假设检验"zh ...
- python使用matplotlib2D绘图库的折线图绘制小案例(方便matplotlib的学习理解)——随机数做幸运值,绘制一周的幸运趋势
python使用matplotlib2D绘图库的折线图绘制小案例(方便matplotlib的学习理解)--随机数做幸运值,绘制一周的幸运趋势 QQ:3020889729 小蔡 小案例内容简介 实例 第 ...
- python如何根据数据画散点图_用python绘制散点图
用python绘制散点图 标签:#Python##散点图# 时间:2019/03/27 21:13:00 作者:夏天的风 今天下午学习了如何使用python绘制简单的散点图,写成博客分享一下. 在py ...
- python设计樱花_用Python画樱花?想得美就能画得美(上)
前段时间疯传的武大学生用Python代码画出樱花,暗藏"武汉加油",好感人的. 不过他们的代码并不是"画"樱花,而是剪辑一段樱花的视频,把其中的像素替换为&qu ...
- 如何用python画心形_利用python画一颗心的方法示例
前言 Python一般使用Matplotlib制作统计图形,用它自己的说法是'让简单的事情简单,让复杂的事情变得可能'.用它可以制作折线图,直方图,条形图,散点图,饼图,谱图等等你能想到的和想不到的统 ...
- python用turtle画月亮_使用Python的turtle画小猪乔治和哆啦 A 梦
本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...
- 利用python画曲线_利用Python绘制血药浓度-时间曲线——口服吸收一室模型
血药浓度-时间曲线一般是通过拟合所测定的血药浓度点而画出来的,但是在某些时候,如阅读文献时,我们需要根据别人报道的PK参数来画出药时曲线.Python语法简单,拥有丰富的开源库,下面尝试通过Pytho ...
最新文章
- VMware Fusion下的虚拟机绑定地址
- 导出txt文件宏_XLM宏反混淆工具:提取和反混淆XLM宏
- LeetCode:104_Maximum Depth of Binary Tree | 二叉树的最大深度 | Easy
- 内核启动流程分析(一)编译体验
- vSphere ESX 4 安装图解
- Centos 上的chrome 如何启用Java
- python matplotlib画图改变图标题和坐标轴标题的字体大小
- python基础语法 第3关_Python基础语法 第3节课 (列表)
- ubuntu 发数据给usb_【奇怪的知识】USB 镜像刻录知识点
- 洛谷 P3387 【模板】缩点
- Chisel3 - Tutorial - Parity
- Linux执行source /etc/profile报错“:command not found”
- [BZOJ2850]巧克力王国
- 从forEach到迭代器
- QT 与webkit(wke) 交互
- 如何把视频和音频合并?手把手教你合并
- Kafka_producer
- ZooKeeper学习笔记(八):ZooKeeper集群写数据原理
- 京东商品主图定时替换,90%卖家这样做
- 接口实现飞机订票系统的一个需求(托运价格计算),需求如下:
热门文章
- [Windows] 在 Microsoft Docs 网站中挖掘 MVVM 的各种学习资源
- C#中形态各异的class
- 在生产环境下处理EFCore数据库迁移的五种方法
- 一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具
- Hyper-V虚拟机自动添加检查点和导出备份
- 基于.NetCore结合docker-compose实践Gitlab-CI/CD 排坑指南
- Async,Await和ConfigureAwait的关系
- 使用高性能Pipelines构建.NET通讯程序
- .NET Core 中的 Generic Host快速使用指南
- 谈谈.NET Core中基于Generic Host来实现后台任务