我对Matplotlib等高线图有疑问。我有图形大小(100x100)。 CSV的所有“重要”值均大于0时应为红色。每个值<0均应为蓝色。
我的问题是,是否有可能没有白色的数据(CSV中没有坐标)的地方。现在,它正在从附近的点绘制一些平均颜色。
是否可以使用Contour获得相似的图形?
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as ml
import pandas as pd
csv_filename = 'data.csv'
df = pd.read_csv(csv_filename)
data = [df.x_pos, df.y_pos]
x = df.x_pos
y = df.y_pos
z = df.importance
ny, nx = 1000, 1000
xmin, xmax = 0, 100
ymin, ymax = 0, 100
xi = np.linspace(xmin, xmax, nx)
yi = np.linspace(ymin, ymax, ny)
zi = ml.griddata(x, y, z, xi, yi, interp='linear')
plt.contour(xi, yi, zi, 1, linewidths = 0, colors = 'k')
plt.pcolormesh(xi, yi, zi, vmin=-1, vmax=1, cmap = plt.get_cmap('bwr'))
#plt.scatter(x, y, marker = 'o', c = z, s = 10, vmin=-1, vmax=1, cmap = plt.get_cmap('bwr'))
plt.colorbar()
plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
plt.show()
**这是CSV数据示例:**
x_pos,y_pos,importance
32,-48,0.87487145766094
32,52,0.43743572883047
32,68,1.127350663193
完整的CSV数据在这里:https://pastebin.com/mYS6LSyG