计算化学公社

 找回密码 Forget password
 注册 Register

差分电荷密度的2D图怎么能画成蓝白红呢

查看数: 16441 | 评论数: 11 | 收藏 Add to favorites 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-1-16 21:54

正文摘要:

如何能画出下图这周蓝白红色彩的差分电荷密度图呢? 记得之前用过的Multiwfn里的color scale有整整18种,能用Multiwfn来画差分电荷密度2D图吗?

回复 Reply

fafa 发表于 Post on 2021-11-26 21:57:29
你好,我想问一下这个是差分电荷密度图的切面吗?我的差分电荷图切面总显示空白可能是什么原因呢
qwe1832518773 发表于 Post on 2021-1-22 14:17:02
sobereva 发表于 2021-1-22 12:46
本来cube文件就不给Multiwfn提供波函数信息,Multiwfn自然也就没法计算电子密度,看
详谈Multiwfn支持的 ...

好的sob老师,我试试看
sobereva 发表于 Post on 2021-1-22 12:46:47
qwe1832518773 发表于 2021-1-18 01:01
老师您好,我在一楼可能没有说清楚,我是用VASP计算完,然后处理了tot-a-b的电荷得到的差分电荷密度文件d ...

本来cube文件就不给Multiwfn提供波函数信息,Multiwfn自然也就没法计算电子密度,看
详谈Multiwfn支持的输入文件类型、产生方法以及相互转换
http://sobereva.com/379http://bbs.keinsci.com/thread-6020-1-1.html

应当把Multiwfn的settings.ini里的iuserfunc设为-1(线性插值)或-3(B-spline插值),然后作图的函数选择100 User-defined function,这样被考虑的函数就是读入的cube文件里的数据插值的函数了
卡开发发 发表于 Post on 2021-1-19 11:26:13
adong 发表于 2021-1-19 11:19
这个脚本很好用!需要安装 numpy;cv2 : pip install numpy; pip install opencv-python;
显示语句后面 ...

没有加入后续写入的原因是因为在show的那个显示过程可以直接右键另存为,这样的操作可能更简单。
adong 发表于 Post on 2021-1-19 11:19:11
这个脚本很好用!需要安装 numpy;cv2 : pip install numpy; pip install opencv-python;
显示语句后面可以添加保存代码:
cv2.imwrite("./out_JPG.jpg", data, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
cv2.imwrite("./out_PNG.png", data, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
#按任意键退出
cv2.waitKey(0)
cv2.destroyAllWindows()
卡开发发 发表于 Post on 2021-1-19 08:46:37
直接替换图的颜色。

  1. #作者:卡开发发
  2. #使用方法: python BGR2BWR.py $name.png
  3. import cv2
  4. import numpy as np
  5. import sys

  6. #通过opencv打开图像文件
  7. data=cv2.imread(sys.argv[1])
  8. #获取宽高,第三位为RGB
  9. h,w,_=data.shape
  10. #循环每个像素
  11. for i in range(h):
  12.     for j in range(w):
  13.         d=data[i][j]
  14.         #黑色边框和白色背景不进行任何处理
  15.         if ((d==np.array([0,0,0])).all()) \
  16.                 or ((d==np.array([255,255,255])).all()):
  17.             continue
  18.         #蓝色通道先255->0,之后绿色通道再0->255
  19.         #因此,要让颜色从蓝色渐变到白色,
  20.         #红色和绿色通道应当取(绿色通道值-蓝色通道值+255)//2
  21.         if d[0]>0:
  22.             data[i][j][2]=(255+d[1]-d[0])//2
  23.             data[i][j][1]=(255+d[1]-d[0])//2
  24.             data[i][j][0]=255
  25.             #更改完红色通道非0值,要跳过后续处理
  26.             continue
  27.         #类似蓝色通道的处理
  28.         if d[2]>=0:
  29.             data[i][j][0]=(255+d[1]-d[2])//2
  30.             data[i][j][1]=(255+d[1]-d[2])//2
  31.             data[i][j][2]=255
  32.             continue
  33. #显示
  34. cv2.imshow(sys.argv[1],data)
  35. #按任意键退出
  36. cv2.waitKey(0)
复制代码
qwe1832518773 发表于 Post on 2021-1-18 01:01:24
rpestana94 发表于 2021-1-16 23:58
Sure you can use Multiwfn, here is a tutorial http://sobereva.com/113

老师您好,我在一楼可能没有说清楚,我是用VASP计算完,然后处理了tot-a-b的电荷得到的差分电荷密度文件diff.cube,这个文件在VESTA和VMD里打开都是正常的等值面,但是Multiwfn里用5-1或者4-1直接打开这个cube文件都不能识别到正确的等值面。
对于这种情况,我该如何用Multiwfn来绘制VASP任务得到的差分电荷密度图像呢?
qwe1832518773 发表于 Post on 2021-1-18 00:58:03
sobereva 发表于 2021-1-17 03:51
Multiwfn显然可以,下文2.3节末尾的那个密度差图就是Multiwfn直接画的

全面探究18碳环独特的分子间相互 ...

Sob老师,我看了http://sobereva.com/113里的例子,但是我一楼绿色的图使用VASP计算并用脚本处理了tot-a-b的电荷得到了一个diff.cube文件,这个文件放入VESTA或者VMD都可以得到3D的差分电荷密度等值面。但是放入Multiwfn里用主功能4-1得到的图并不是想要的差分电荷。我也试过将VASP计算完的tot、a、b都导出成cube文件,在Multiwfn里进行tot-a-b这样的操作,但也得不到正确的差分电荷密度。我该怎么做才能让Multiwfn识别出正确的cube文件等值面呢?
qwe1832518773 发表于 Post on 2021-1-17 10:30:01
rpestana94 发表于 2021-1-16 23:58
Sure you can use Multiwfn, here is a tutorial http://sobereva.com/113

感谢回复!
sobereva 发表于 Post on 2021-1-17 03:51:09
Multiwfn显然可以,下文2.3节末尾的那个密度差图就是Multiwfn直接画的

全面探究18碳环独特的分子间相互作用与pi-pi堆积特征
http://sobereva.com/572http://bbs.keinsci.com/thread-19660-1-1.html
rpestana94 发表于 Post on 2021-1-16 23:58:20
Sure you can use Multiwfn, here is a tutorial http://sobereva.com/113

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-19 07:45 , Processed in 0.217403 second(s), 31 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list