【发布时间】:2017-05-28 19:12:01
【问题描述】:
我需要一些关于 Matplotlib 等高线图的帮助。
问题是,我的等高线图的线条(如下所示)没有闭合,并且我的图像被切成了两半。我想知道是否可以强制 Matplotlib 关闭轮廓,或者我的数据是否统计数据太差而无法这样做。但是,我选择了 x 轴值 > 10.0 的所有对象,并得到 10e6 个要绘制的对象。
我正在使用:
- Python 2.7
- Ubuntu 14.04
- --> 使用 PdfPages 打印的绘图
代码如下:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib.backends.backend_pdf import PdfPages
x = np.linspace(min(mydata[:,0]), max(mydata[:,0]), 100)
y = np.linspace(min(mydata[:,1]), max(mydata[:,1]), 100)
H = np.histogram2d(mydata[:,0], mydata[:,1], bins=100)
binsize = int((H.max()-grid_min)/8)
X,Y = np.meshgrid(x,y, indexing='ij')
#set_zero=2.0 % for example! Amount of objects which are not included in the plot
#in order to get a not that wide spread last contour (dark blue in the figure enclosed)!
grid_min = np.floor(int(H.max()/100.0*set_zero))
CS=cb_axis.contour(X,Y,H, 8, lw=2.5, ls='-', col='w',
levels=np.arange(grid_min, np.ceil(H.max()), binsize))
cb_axis.contourf(X,Y,H, 8, levels=np.arange(grid_min, np.ceil(H.max()),
binsize), cmap='coolwarm'))
plt.colorbar(CS, pad=0.01, aspect=35, use_gridspec=True, format='%0.1e')
【问题讨论】:
-
如果丢弃部分数据,您希望轮廓如何闭合?
-
你是如何选择数据的? x
-
@RolandSmith Smith:这是我试图找出的一部分。我可以强制轮廓以某种方式关闭以使情节看起来更好,还是不可能。所以我知道我没有做错什么,只是这种选择的数据......
-
@periphreal:不,选择中没有 NaN 值,我之前处理过它们...
-
您可以使用(对数)线性插值人工生成短范围的值,例如 9.9 到 10 之间。
标签: python matplotlib contour contourf