python画二维密度图
时间: 2023-08-30 10:05:30 浏览: 80
在Python中,可以使用matplotlib库来画二维密度图。以下是一个简单的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde
# 生成数据
x = np.random.normal(size=500)
y = np.random.normal(size=500)
# 使用scipy库中的kde函数计算密度
k = kde.gaussian_kde([x, y])
# 生成网格数据
xi, yi = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))
# 绘制密度图
plt.pcolormesh(xi, yi, zi.reshape(xi.shape), shading='gouraud')
plt.show()
```
这段代码会生成一个二维正态分布随机数,并使用kde函数计算密度,最后使用pcolormesh函数绘制密度图。你可以根据需要调整生成数据的方式和绘图参数以满足你的需求。
相关问题
用python画一个二维密度图应用实例
好的,以下是一个用Python绘制二维密度图的应用实例:
首先需要导入必要的库:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde
```
然后生成一些随机数据:
```python
# 生成二维随机数据
x = np.random.normal(size=500)
y = np.random.normal(size=500)
```
接下来,使用kde库计算出密度:
```python
# 使用kde计算密度
k = kde.gaussian_kde([x,y])
xi, yi = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))
```
最后,使用matplotlib库绘制出密度图:
```python
# 绘制二维密度图
plt.pcolormesh(xi, yi, zi.reshape(xi.shape), cmap=plt.cm.BuGn_r)
plt.colorbar()
plt.show()
```
完整代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import kde
# 生成二维随机数据
x = np.random.normal(size=500)
y = np.random.normal(size=500)
# 使用kde计算密度
k = kde.gaussian_kde([x,y])
xi, yi = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))
# 绘制二维密度图
plt.pcolormesh(xi, yi, zi.reshape(xi.shape), cmap=plt.cm.BuGn_r)
plt.colorbar()
plt.show()
```
python二维核密度分布图
要绘制二维核密度分布图,可以使用Python中的seaborn库。具体步骤如下:
1. 导入必要的库和数据
```python
import seaborn as sns
import pandas as pd
data = pd.read_csv('data.csv')
```
2. 绘制二维核密度分布图
```python
sns.kdeplot(x=data['x'], y=data['y'], cmap='Blues', shade=True, thresh=0.05)
```
其中,x和y是数据集中的两个变量,cmap是颜色映射,shade表示是否填充颜色,thresh是阈值,用于控制绘制的密度范围。