matplotlib - 您可以将 Seaborn 参数应用于使用 matplotlib 创建的 3d 函数热图吗?
问题描述
我需要使用我专门使用 Matplotlib 参数绘制的下图。
import matplotlib.pyplot as plt
import numpy as np
y, x = np.meshgrid(np.linspace(0, 5*10**(-25), 100), np.linspace(0, 5*10**(-9), 100))
def z_collisionfactor (x, y):
return((((2.9929*10**(-20))+(1.73*10**(-10))*x+((1/4)*x**(2)))*((5.3136*10**(-26))+(y))**(1/2))/((((2.2685*10**(-23))+((1.3113*10**(-13))*x)+(1.8949*10**(-4)*x**(2)))*((5.3136*10**(-26)+y)**(1/2)))+(1.604*10**(-23)*((y)**(1/2)))+((4.9418*10**(-16))*x**(2))))
z = z_collisionfactor (x, y)
z = z[:356, :488]
z_min, z_max = 356, 488
fig, ax = plt.subplots()
c = ax.pcolormesh(x, y, z, cmap='RdBu', vmin=z_min, vmax=z_max)
ax.set_title('Probability of collision for unlike molecules')
ax.set_xlim(left=0, right=3*10**(-9))
ax.set_ylim(bottom=0, top=5*10**(-25))
fig.colorbar(c, ax=ax)
plt.show()
输出看起来像这样: 我的函数图 但是,我需要将两种特色颜色转换为相同的灰色调,以便在黑白打印时可以正确解释图形。所以我尝试使用 Seaborn,但我不知道如何将图形的所有定义属性压缩到一个名为“数据”的巨大变量中。显然,您不能直接将 Seaborn 参数分配给 Matplotlib 图,所以我对下一步该做什么感到困惑。另外:另外,如果能够稍微改变条的中心(这样白色部分的值不同,比如 450,并且取决于其他点距离 450 的距离),那就太好了。 z 轴,它们在灰度上被分配了一个特定的值,无论这些点是向上还是向下,都是相同的。也就是说,470 应该与 430 具有相同的颜色值,因为它们都离 450 20 个单位)。编辑:拜托,我需要一些帮助!!!!!!!谢谢
解决方案
推荐阅读
- javascript - 在不工作的情况下设置日期输入值
- python - ImportError:将views.py拆分为多个文件后没有名为模型的模块
- python - 如何修复错误的位置程序
- vue.js - 来自 vue 当前组件的访问方法
- python - 如何使用 redis for python 在 Redis 中搜索值
- mysql - 如果 ID 在另一个表中不匹配,则返回 NULL
- java - 没有从相机获取文件
- python - Keras 中 ANN 每次迭代的权重值
- windows - 如何加快 powershell 以在 Windows 10 上获取防火墙规则?
- excel - 使用 vba 选择要在其中扫描特定工作表以获取数据的文件夹