python - 几何中值的等高线图
问题描述
我目前有以下代码来生成一些点的几何中值图:
import numpy as np
from scipy.optimize import minimize
from scipy.spatial.distance import cdist
import matplotlib.pyplot as plt
def geometric_median(points):
"""
Geometric median as a convex optimization problem.
"""
def aggregate_distance(x):
return cdist([x], points).sum()
centroid = points.mean(axis=0)
optimize_result = minimize(aggregate_distance, centroid, method='COBYLA')
return optimize_result.x
def plot_median(points):
points = np.array(list(points))
x, y = zip(*points)
median = geometric_median(points)
for i in range(len(points)):
plt.plot([median[0],x[i]],[median[1],y[i]], 'o', mfc='red', mec='red', ls=':', c='k')
plt.plot(median[0], median[1], 'ob', markersize=10)
plt.show()
我想要做的是将我的图分层在等高线图上,其中 z 值是从 (x,y) 到所有其他点的距离之和,因此几何中位数将在中间,最小值 - 比如显示在底部图片中,我目前只能创建顶部图片。我没有问题找到每个点的距离总和,我只是不知道如何将它绘制成等高线图。任何帮助或指示将不胜感激。
解决方案
推荐阅读
- python-3.x - 无法使用带有标记为索引的字符串的 loc 进行设置
- php - 如何在 CodeIgniter 中分离具有相同名称的控制器功能
- html - 使用 ASP 为重复数据实现 Rowspan
- javascript - Javascript:使用括号符号动态选择变量
- qt - 如何将变换应用于网格几何体
- java - 即使从数据库中删除表,JdbcTemplate 如何能够检索数据
- hibernate - 在休眠中带有集合名称的下划线
- java - Thymeleaf + 静态资源 + @ResponseBody
- android - java.lang.IllegalStateException:需要 OverrideDeadline。给定:-2127623
- amazon-web-services - AWS Glue Crawler 为每个 parquet 数据创建每个表