使用 matplotlib 和 seaborn 创建圆形密度图

2024-01-02

我正在尝试创建下面两个图像的组合。

密度图 https://i.stack.imgur.com/kV09a.png

圆形条形图 https://i.stack.imgur.com/tc7eG.png

基本上我想要密度图的设计,但围绕一个圆圈而不是正常的 X/Y 图表设置。

下面是 Python 中密度图的代码。

    # !pip install brewer2mpl
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings; warnings.filterwarnings(action='once')

large = 22; med = 16; small = 12
params = {'axes.titlesize': large,
          'legend.fontsize': med,
          'figure.figsize': (16, 10),
          'axes.labelsize': med,
          'axes.titlesize': med,
          'xtick.labelsize': med,
          'ytick.labelsize': med,
          'figure.titlesize': large}
plt.rcParams.update(params)
plt.style.use('seaborn-whitegrid')
sns.set_style("white")
#%matplotlib inline

# Version
print(mpl.__version__)  #> 3.0.0
print(sns.__version__)  #> 0.9.0

# Import Data
df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")

# Draw Plot
plt.figure(figsize=(16,10), dpi= 80)
sns.kdeplot(df.loc[df['cyl'] == 4, "cty"], shade=True, color="g", label="Cyl=4", alpha=.7)
sns.kdeplot(df.loc[df['cyl'] == 5, "cty"], shade=True, color="deeppink", label="Cyl=5", alpha=.7)
sns.kdeplot(df.loc[df['cyl'] == 6, "cty"], shade=True, color="dodgerblue", label="Cyl=6", alpha=.7)
sns.kdeplot(df.loc[df['cyl'] == 8, "cty"], shade=True, color="orange", label="Cyl=8", alpha=.7)

# Decoration
plt.title('Density Plot of City Mileage by n_Cylinders', fontsize=22)
plt.legend()
plt.show()

这是圆形条形图的代码。

    import numpy as np
import matplotlib.pyplot as plt

#~~~~~~~~~~~Test~~~~~~~#
import pandas as pd
import seaborn as sns
# Import Data
df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")
#~~~~~~~~~~~Test~~~~~~~#

N = 80
bottom = 8
max_height = 4

theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = max_height*np.random.rand(N)
width = (2*np.pi) / N

ax = plt.subplot(111, polar=True)
bars = ax.bar(theta, radii, width=width, bottom=bottom)



# Use custom colors and opacity
for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.jet(r / 10.))
    bar.set_alpha(0.8)

plt.show()

我不确定圆形条形图代码中是否有任何相关内容,我只是在网上找到它作为圆形设计的参考框架。最终代码将与密度图非常相似,以几乎相同的方式获取数据(当前数据只是虚拟数据,但概念相同)。

我从未与matplotlib and seaborn之前,所以不确定我想要的是否可能。另外,我知道圆形密度图可能不是共享数据的最佳或最实用的选择,但圆形设计在这种情况下更重要。


理论上,您可以将轴的投影设置为"polar"然后它就会起作用:

x = np.random.vonmises(0, 2, 100)
f, ax = plt.subplots(subplot_kw=dict(projection='polar'))
sns.kdeplot(x)

但这并不是真正的圆形密度,因为要计算它,您需要使用冯·米塞斯核,而不是包裹到极坐标的高斯。不幸的是,我认为您需要自己计算圆形密度,然后将其绘制为一条线。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 matplotlib 和 seaborn 创建圆形密度图 的相关文章

  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得

随机推荐

  • Rails 3/ Git/ Bundler Fatal 无法解析对象

    尝试捆绑安装时 我收到以下错误 Fatal could not parse object 8c11dd Git error command git reset hard 8c11dd If this error persists you c
  • 如何在 C++11 中创建线程对象数组?

    我想学习如何使用新的 C 标准库创建多个线程并将它们的句柄存储到数组中 我怎样才能启动一个线程 我看到的示例使用构造函数启动线程 但如果我使用数组 则无法调用构造函数 include
  • Python 正则表达式:异或运算符

    假设我有这样的字符串 DT NN IN NN DT RB JJ NN DT JJ JJ NN DT RB RB NN NN DT RB RB 所以 我有一个字符串列表 list DT NN IN NN DT RB JJ NN DT JJ J
  • std::map 的变量模板 + 通用 lambda

    An C 14 变量模板的答案 目的是什么 有使用示例吗 https stackoverflow com a 21162680 1508519提出了一个变量模板 泛型 lambda 的使用示例 如下所示 void some func tem
  • 当快速加载选项打开且最大插入提交大小设置为零时,SSIS 如何重定向 OLEDB 目标中的行

    我正在使用启用快速加载的 OLEDB 目标 在错误输出中 有 3 个选项 失败组件 忽略失败 和 重定向 如果我选 择 重定向 它会显示启用 快速加载 选项的 OLEDB 无法重定向 是否有其他方法来处理该错误这些类型的 Oledb 目标
  • 我的第一个表值函数和游标

    我有这样的疑问 SELECT name lastname FROM contestant WHERE name John AND lastname Smith 我从上面的查询中得到了几个结果 我需要将它们用于以下查询 SELECT name
  • 未找到快速命令

    由于某种原因 在我的机器上全局安装 Express 后npm install g express if I cd进入目录并尝试运行express 我收到以下错误 express command not found 即使我运行它sudo我仍然
  • AssertionError:将使用不支持的标签('cp310','cp310','linux_x86_64')构建轮子

    当我尝试使用 Python 3 10 安装 numpy 时 我收到此消息 如何解决这个问题 Copying numpy egg info to build bdist linux x86 64 wheel numpy 1 19 3 py3
  • 使用 Node.js、流和 Promise 下载文件

    这是我的代码片段 var processListing function directoryItems console log foreach var itemsToDownload directoryItems forEach funct
  • 骨干.js https

    整个早上都在谷歌上搜索 但找不到答案 官方文档中甚至没有 https 或 ssl 字样 目前我有类似的东西 var A backbone Collection extend url a 有没有办法让 url https 而不使用绝对路径 我
  • 如何避免 uitextfield 旁边的点

    当文本大于 uitextfield 的宽度时 是否可以删除 uitextfield 旁边显示的点 如果您调用以下代码使键盘可见 这是可能的 self yourTextField 成为FirstResponder 然后较大的文本从左侧被剪切
  • Airflow - 获取 dag run 的开始时间

    是否有可能获得气流中 dag 的实际开始时间 我所说的开始时间是指 dag 的第一个任务开始运行的确切时间 我知道我可以使用宏来获取执行日期 如果使用trigger dag运行作业 这就是我所说的开始时间 但如果作业按每日计划运行 那么 e
  • 无法在中心显示材质 ui 小吃栏

    我有一个材料 ui 小吃栏 我需要将其显示在屏幕中间 下面是我试图传递的属性 使其显示在屏幕中心 但显示在屏幕顶部 anchorOrigin vertical center horizontal center https codesandb
  • 出现错误:/bin/sh scriptcs:找不到命令

    我正在使用 Visual Studio Code for Mac 运行扩展 CodeRunner 我有一个简单的程序 using System namespace HelloWorldApplication class HelloWorld
  • “X-UA-兼容”内容=“IE = 9; IE = 8; IE = 7; IE = EDGE”

    这句话究竟是什么意思呢 一些例子使用 分离 IE 的版本 而有些则使用 哪个是对的 命令IE 9 IE 8 IE 7 IE EDGE有一定的重要性 我想知道这一点 Edit 我在用 如果您支持 IE 对于 Internet Explorer
  • 获取 Jasper Reports 表中第一行和最后一行的第一个字母

    I am using JasperSoft Studio in Eclipse to generate a signup sheet for a church The page header has the label of what la
  • 从 python 列表中删除 '\n' 列表项

    我有一个列表 其中包含一个项目 n 我想删除它 但是 删除命令不起作用 谁能告诉我我做错了什么 def main list1 ng g ng g g n n ns ns s n nd d nd nd d d d n n print list
  • 提交时将表单数据发送到 Javascript

    好吧 我觉得这应该很简单 所以要么我完全错过了这里和我读过的其他网站上的问题的要点 要么没有在相同的上下文中被问到 我有一个非常简单的表单元素 如下
  • 创建 XSS 易受攻击的网页

    我想创建一个 XSS 易受攻击的网页 该网页执行在输入框中输入的脚本 我在这里编写了这段代码 但每当我输入脚本时 什么也没有发生 p You wrote p
  • 使用 matplotlib 和 seaborn 创建圆形密度图

    我正在尝试创建下面两个图像的组合 密度图 https i stack imgur com kV09a png 圆形条形图 https i stack imgur com tc7eG png 基本上我想要密度图的设计 但围绕一个圆圈而不是正常