python - 在 Python 中制作 x,y,z 数据的热图
问题描述
我正在尝试在 Python 中绘制热图。我已经研究了几个教程,但仍然无法实现我所需要的。我的数据有 3 列:X、Y(散点图中的坐标)和集群(每行放置一个组/集群)。所需的输出应如下所示(6 个簇和 X、Y 点分布在彩色区域):
我当前的代码:
# libraries
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import kde
from scipy.interpolate import griddata
# Get the data (csv file is hosted on the web)
url = 'https://raw.githubusercontent.com/ampil/sandbox/master/latest-sales-sample.csv'
df = pd.read_csv(url, sep = ';')
df = df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
# create data
x = df['X']
y = np.log(df['Y'])
z = df['cluster']
# target grid to interpolate to
xi = yi = np.arange(0, 1.01, 0.01)
xi, yi = np.meshgrid(xi,yi)
# interpolate
zi = griddata((x,y),z,(xi,yi),method='cubic')
# plot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.axis((x.min(), x.max(), y.min(), y.max()))
plt.contourf(xi, yi, zi, np.arange(0, 1.01, 0.01), cmap='coolwarm')
plt.plot(x,y,'k.')
plt.xlabel('x',fontsize=16)
plt.ylabel('y',fontsize=16)
plt.show()
plt.close(fig)
给我
稍后,我计划通过 dash 发布图表。
任何帮助表示赞赏!
解决方案
推荐阅读
- java - GraalVM / Nashorn 与 Java 枚举的兼容性
- android - 从 Google Play 下载时,Android Studio Spotify API 不起作用
- amazon-dynamodb - 单表 DynamoDB 设计技巧
- javascript - 修复函数,以便它们成功调用 ajax 而不仅仅是页面加载
- google-analytics - Shopify 价格值参数与分析的差异(GA、FB 像素)
- oracle - 从 Oracle 中的假脱机中删除“已建立连接”
- notepad++ - 使用 (Notepad++) 将行转换为列
- macos - 如何在 Rosetta 2 下运行的 x86_64 进程中以原始刻度(即 mach_absolute_time)获取系统时钟的真实值?
- python - 属于同一接口的类型提示类
- sql - 使用最近的行加入 BigQuery