python - 将两个不同的图像直方图绘制为单个 2D 直方图
问题描述
我希望在 x 轴上绘制一个 uint16 图像的直方图,在 y 轴上绘制另一个 uint16 图像的直方图,这样我就可以将它们之间的关系的颜色图绘制为 2D 图。
我试图形成两个单独的直方图,然后在循环中构造二维数组,但这失败了。
first = np.histogram(img1, bins = 1000)
first = first[0]
second = np.histogram(img2, bins = 1000)
second = second[0]
empty_array = np.zeros((1000,1000), dtype = np.float64)
for i in range(1000):
for j in range(1000):
empty_array[i,j] = first[j] + second[1000-j]
解决方案
正如@kilozulu 已经建议的那样,这是使用 seaborn 的解决方案。我不会使用已经分箱的数据来生成此图,因为您正在丢失两个图像之间数据点的关联。相反,直接输入像素意图:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
#dummy images
img1 = np.random.normal(0,10,(100,100))
img2 = np.random.normal(0,10,(100,100))
# make jointplot with linearised images:
sns.jointplot(img1.ravel(), img2.ravel(), kind='kde')
推荐阅读
- mongodb - 如何获取文档数组属性的串联列表?
- c# - 在 C# 接口中容纳来自 VB.Net 的参数化方法
- netsuite - NetSuite Suitescript 2.0 如何访问自定义项目选项记录?
- android - Kotlin Firebase onFailureListener 空异常
- reactjs - 如何更改 ag-grid 行数?
- angular - Angular中带有mat复选框的总和
- c# - Swagger 未加载 - 无法加载 API 定义:获取错误未定义
- javascript - JavaScript:创建将嵌套数组中的数据转换为具有多个对象的数组的函数
- angular - 在 mat-table 中加载初始值时不选中复选框
- design-patterns - 我们如何将没有参数的函数转换为单参数函数?