python画circos图_用Python把图做的好看点:用Matplotlib画个Circos和弦图
一直觉得circos图 很好看,最近尝试了一下 对中间关系曲线的 绘制
主要利用的数学工具是 贝塞尔曲线
但是对贝塞尔曲线中间的控制点取值 还是不太满意 造成部分曲线看着有点奇怪
成品大概是这样
代码如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import random
Start1=[0 for i in range(50)]
for i in range(60):
Start1.append(5/np.power(2,0.2))
for i in range(80):
Start1.append(-5/np.power(2,0.2))
df=pd.DataFrame(Start1,columns=['Startx'])
df['Starty']=np.power(25-np.power(df['Startx'],2),0.5)*-1
df['Endx']=[random.uniform(-5,5.0) for i in range(len(df))]
df['Endy']=np.power(25-np.power(df['Endx'],2),0.5)*[random.sample([1,-1], 1)[0] for i in range(len(df))]
df['']=np.power(25-np.power(df['Endx'],2),0.5)
df['斜率1']=(df['Starty']-df['Endy'])/(df['Startx']-df['Endx'])
df['斜率2']=-1/df['斜率1']
df['中心点x']=(df['Startx']+df['Endx'])/2
df['中心点y']=(df['Starty']+df['Endy'])/2
df['x轴移动']=df['中心点x']-df['中心点x']*(0.05)
df['y轴移动']=df['x轴移动']*df['斜率2']
df['控制点x']=df['中心点x']-df['x轴移动']
df['控制点y']=df['中心点y']-df['y轴移动']
df['r1']=np.power(df['Startx']*df['Startx']+df['Starty']*df['Starty'],1/2)
df['theta1']=np.arctan2(df['Starty'],df['Startx'])
df['r2']=np.power(df['Endx']*df['Endx']+df['Endy']*df['Endy'],1/2)
df['theta2']=np.arctan2(df['Endy'],df['Endx'])
fig=plt.figure(figsize=[15,15])
ax=fig.add_subplot(1,1,1,projection='polar')
t=np.linspace(0,1,1000)
for i in range(len(df)):
x_c=(1-t)*(1-t)*df.iloc[i]['Startx']+2*t*(1-t)*df.iloc[i]['控制点x']+t*t*df.iloc[i]['Endx']
y_c=(1-t)*(1-t)*df.iloc[i]['Starty']+2*t*(1-t)*df.iloc[i]['控制点y']+t*t*df.iloc[i]['Endy']
r=np.power(y_c*y_c+x_c*x_c,0.5)
theta=np.arctan2(y_c,x_c)
ax.plot(theta,r,color=(0/255,123/255,187/255),alpha=0.5)
ax.scatter(df[['theta1','theta2']],df[['r1','r2']],color=(0/255,123/255,87/255),alpha=1)
ax.bar(x=df['theta2'],height=[2],bottom=6,width=0.01,color=(225/255,225/255,225/255),alpha=0.5)
plt.axis('off')
讲解留到以后吧
之前一直以为参数算错了 后来发现是坐标轴的起点没有设置好
需改了坐标轴设置后,在增加对粗细的修改
python画circos图_用Python把图做的好看点:用Matplotlib画个Circos和弦图相关推荐
- python画图程序没有图_解决python中使用plot画图,图不显示的问题
解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...
- python画交互式地图_使用Python构建交互式地图-入门指南
python画交互式地图 Welcome to The Beginner's Guide to Building Interactive Maps in Python 欢迎使用Python构建交互式地 ...
- python简单图画程序_用Python的Turtple画图形
不知道各位是否还记得在小学或者初中的时候,我们接触过一种语言叫做logo语言,这个语言可以画正方形,画三角形,画圆.而用Python画图形也有点类似logo语言的意思. 在画图之前,我们需要启动一个模 ...
- python画猪头_使用Python画小猪佩奇 社会人标配
看了一些用python实现小猪佩奇画画的帖子,向自己实现下,以此记录. 社会人的标配是谁,当然是吹风机小猪佩奇身上纹. 我自己尝试画过小猪配齐但是感觉眼睛特别难画,画出来的猪头没有立体感,眼睛画不好整 ...
- python 绘制k线图_利用python numpy+matplotlib绘制股票k线图的方法
一.python numpy + matplotlib 画股票k线图 # -- coding: utf-8 -- import requests import numpy as np from mat ...
- python绘制简单城市剪影图_利用Python的folium包绘制城市道路图的实现示例
写在前面 很长一段时间内,我都在研究在线地图的开发者文档,百度地图和高德地图的开发者中心提供了丰富的在线地图服务,虽然有一定的权限限制,但不得不说,还是给我的科研工作提供了特别方便的工具,在博客前面我 ...
- 用python画路飞代码_用Python画路飞骷髅图案【附代码】
用Python代码实现这幅图的绘制,由于学艺不精,只能用直角坐标系作为参考画出来. 配色的RGB取色色块 还有重要的量角器兄弟 下面是代码 #路飞骷髅 import turtle as t #黄底帽子 ...
- 用python画路飞代码_用Python画路飞骷髅图案【附代码】-Go语言中文社区
用Python代码实现这幅图的绘制,由于学艺不精,只能用直角坐标系作为参考画出来. 配色的RGB取色色块 还有重要的量角器兄弟 下面是代码 #路飞骷髅 import turtle as t #黄底帽子 ...
- Python识别表格图_使用Python究竟可以做什么?下面是Python的3个主要应用
原文传送门: https://medium.com/free-code-camp/what-can-you-do-with-python-the-3-main-applications-518db9a ...
- 用python的turtle画等边三角形讲解_通过Python turtle绘制等边三角形谈编程思维和逻辑...
相信三角形对于绝大数人来说,是再熟悉不过的一个几何图形了,并且在现实生活和工作中也经常遇见,如果要画的话,相信很多人也会说,简单的很啊,画三条相等的线段,每两个线段的夹角为60度就可以了啊,也许我们借 ...
最新文章
- Linux系统时间和时序,什么是时序竞态 Linux系统时序竞态问题分析
- python语言怎么用-python语言中with as的用法使用详解
- DispatcherServlet默认配置
- 【数学和算法】SVD奇异值分解原理、以及在PCA中的运用
- VS2008 fatal error LNK1000: Internal error during IncrBuildImage 解决方案
- C++ Vector的使用
- gif透明背景动画_常用GIF动图制作工具,抖音里面的动图都是这些工具做出来的...
- axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
- python右键没有idle编辑了_python右键Edit with IDLE
- 计算机器内存数量+引入和显示ARDS成员
- 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)
- 【hortonworks/registry】创建嵌套结构的scheam和带空值的schema
- plsql如何显示表结构图_产品经理需了解的架构图/结构图知识
- android设置密码框,Android手机卫士之设置密码对话框
- 相比 C 、C++,Go 为什么不火?
- 2021北京网络安全大会议程及直播观看指南
- RESTful Web Service - JAX-RS Annotations
- python实现12306查询火车票
- PM、RD、QA、OP英文缩写是什么意思
- Kali使用apt-cache search搜索想要的软件包
热门文章
- apache benchmark 压测参数说明
- android pdfview 显示目录,Android 查看pdf文档——PDFView
- Antivirus Zap Pro 3.9.4.1 推荐的Mac杀毒软件
- 浏览器兼容性篇-vue篇-ES6转ES5
- HashSet子类依靠()方法区分重复元素
- python取列表前几个元素_python list输出最后10个元素
- Access2013 Mssql2012 数据库连接字符串
- access 套用表格_在Excel 2013工作表中导入Access数据的方法
- jsp网页连接mysql数据库
- 数据可视化大屏案例 总目录