我试着用Python制作一个彩色地图,除了这个小麻烦之外,我什么都有,这让地图看起来很糟糕。
代码很简单。我只是使用了一个矩阵的价值,并绘制他们使用三圈。我是在我的土地上循环收集和改变边缘颜色和线宽。
我注意到以下几点。如果我想在每一条轮廓周围都有一条细白线,那么我就需要。
CS = plt.tricontourf(X,Y,Z, 70, cmap=cm.seismic, antialiased=True)
print CS.collections
for c in CS.collections:
c.set_edgecolor('white')
c.set_linewidth(1)
plt.colorbar()
plt.show()
并获取
很明显,我们看了这个,然后说,轮廓周围的白线看起来很糟糕,让我们去掉它们。您可以通过多种方式这样做,可能通过将linewidth=0或颜色设置为“none”。我将在下面的代码中同时执行这两个操作。我们有
CS = plt.tricontourf(X,Y,Z, 70, cmap=cm.seismic, antialiased=True)
print CS.collections
for c in CS.collections:
c.set_edgecolor('none')
c.set_linewidth(0)
plt.colorbar()
plt.show()
并获取
好点了,但你还能看到轮廓的模糊轮廓吗?这是,而不是,它只是颜色图上的一个变化--这显然是一条通过每个轮廓线的非常亮的线。
有没有办法把彩色地图混在一起,这样就不会发生这种情况?谢谢。
发布于 2021-09-24 07:01:39
当您以pdf格式保存图片时,问题将变得更加明显。随着等高线数量的增加,图像被平滑,但是pdf仍然存在问题。
例如:
import numpy as np
import matplotlib.pyplot as plt
from numpy.random import uniform
x = uniform(-2,2,200)
y = uniform(-2,2,200)
z = x*np.exp(-x**2-y**2)
plt.tricontourf(x,y,z, 300, cmap="seismic", antialiased=False)
plt.colorbar()
plt.savefig('stackoverflow/tricontourf.pdf')
plt.savefig('stackoverflow/tricontourf.png', dpi=300)
但是在每个轮廓线上运行的非常轻的线仍然可以在pdf中看到。
部分解决方案是使用tricontour
而不是tricontourf
,并使用一些linewidths
选项:
import numpy as np
import matplotlib.pyplot as plt
from numpy.random import uniform
#Some Data
x = uniform(-2,2,200)
y = uniform(-2,2,200)
z = x*np.exp(-x**2-y**2)
plt.tricontour(x,y,z, 300, cmap="seismic", antialiased=False, linewidths=5)
plt.colorbar()
plt.savefig('stackoverflow/tricontour.pdf')
plt.savefig('stackoverflow/tricontour.png', dpi=300)
tricontourf
不支持此选项。
发布于 2022-09-08 11:29:42
你可以用在你的三巡回演出中使用的相同的颜色图来重叠一个三周图。这样就能有效地去除白色的痕迹。
https://stackoverflow.com/questions/41509011
复制相似问题