![]() |
chunhui201 发表于 2025-2-19 16:14 Graphics - Color - Color scale,然后自己ps最省事 或者参考下文 使用Multiwfn+VMD快速地绘制静电势着色的分子范德华表面图和分子间穿透图(含视频演示) http://sobereva.com/443(http://bbs.keinsci.com/thread-11080-1-1.html) |
sobereva 发表于 2024-11-26 11:39 请问VMD中能把颜色标尺表示出来吗 |
Uus/pMeC6H4-/キ 发表于 2024-11-28 22:43 您好,谢谢你的介绍,我的问题解决了,修改了下面的语句 # draw the color bar set cur_y [ expr $start_y+$length - ($colorid - $mincolorid) * $step ] drew the text set coord_y [expr $start_y+$length - $i * $step_size ] set cur_text [expr $min + $i * $value_step ] 让循环负着来,非常感谢 |
Uus/pMeC6H4-/キ 发表于 2024-12-2 10:57 谢谢,其实也没有非要拿出来画颜色标尺,只是我不太懂代码,用VMD画的颜色标尺不方便调大小 |
pxp2024 发表于 2024-11-29 20:24 第二个问题,根据Log Tcl Commands to Console的结果,调offset为0的时候同时执行以下三个命令,所以要设为默认的话把这些加到vmd.rc里:
第一个问题,渐变色涉及的colorid从33开始到1056结束,一共1024个。我不太清楚额外拿去拟合有什么好处,但一定要这么干的话先阅读前面说的VMD手册相关部分。 |
Uus/pMeC6H4-/キ 发表于 2024-11-28 22:43 非常感谢,我觉得颜色标尺肯定是按照蓝白红然后颜色递减的,origin中可以直接插值,我想怎么确定VMD中颜色标尺的画了多少条颜色,我直接提出初末颜色然后根据他的颜色条数量就可以在origin中插值画,origin的插值最大值为256,另外怎么能把VMD中的color control颜色标尺的offset 设置默认0,设置到0后和origin中一个颜色标尺很接近 |
pxp2024 发表于 2024-11-27 14:25 不用叫老师,另外直接往帖子里写自己计算机的路径是传不上来图片的哦(虽然我能大概猜到也不用看了) 如果反转的效果是从下到上仍然是负值到正值但颜色变成红白蓝,在Graphics - Colors的Color Scale把Method在RWB和BWR间切换下就行。但是看5楼第二图上端是蓝色负值,估计这应该不是你的想法。脚本定义了一个变量start_y作为起点的y坐标,然后在长度length内逐步增加y坐标来绘制颜色和刻度,最后在更高的y坐标绘制标签作为标题;所以要实现你的想法就得把start_y初始值增大,找循环内expr $start_y + ...之类的语句把加改成减,等等。 你贴的这一段就是利用for循环逐步增加y坐标绘制颜色的代码。draw color $colorid决定了此步绘制的颜色对应colorid,draw line ...就是画一条对应颜色的细线,一步一步画线堆成最后的渐变色彩条。VMD的渐变色和colorid机制确实有点不太直观,参考手册74到77页;虽然确实可以用colorinfo rgb <colorid>之类的指令提取颜色,但整个渐变色范围涉及上千colorid且直接输出的RGB值是三个0到1的小数,很可能不适合其他作图软件的渐变色定义方式。 |
本帖最后由 pxp2024 于 2024-11-27 14:39 编辑 Uus/pMeC6H4-/キ 发表于 2024-11-26 21:41 老师你好,我已经按照你的说明得到了想要的颜色刻度,但是我想让蓝色在上,红色在下反转过来,请问应该怎么操作,另外我觉得还是把他这个颜色代码转换出来在origin里画能更方便,请问老师能帮我看看这个代码具体是什么意思吗? # draw the color bar set mincolorid [colorinfo num] set maxcolorid [expr [colorinfo max] - 1] set numscaleids [expr $maxcolorid - $mincolorid] set step [expr $length / double($numscaleids)] for {set colorid $mincolorid } { $colorid <= $maxcolorid } {incr colorid 1 } { draw color $colorid set cur_y [ expr $start_y + ($colorid - $mincolorid) * $step ] draw line "$use_x $cur_y $use_z" "[expr $use_x+$width] $cur_y $use_z" } 非常感谢 |
Uus/pMeC6H4-/キ 发表于 2024-11-26 21:41 谢谢 ![]() |
pxp2024 发表于 2024-11-26 20:09 Color Scale Bar插件弹出的tk窗口有个Label format的选项可以直接切换刻度数值是否启用科学计数法。 额外添加单位以及修改小数位数的话才需要改colorscalebar.tcl脚本,搜索定义变量labeltxt的地方并结合tcl里format的语法修改引号中的内容即可。 |
Uus/pMeC6H4-/キ 发表于 2024-11-26 15:24 你好,我想把刻度值(例如1.600e+000)改成正常的数值加单位(1.6eV),不想用科学计数形式,请问应该修改那部分的参数,应该怎么修改? |
本帖最后由 pxp2024 于 2024-11-26 20:09 编辑 你好,我想把刻度值(例如1.600e+000)改成正常的数值加单位(1.6eV),不想用科学计数形式,请问应该修改那部分的参数,应该怎么修改? |
Uus/pMeC6H4-/キ 发表于 2024-11-26 15:24 好的 ![]() |
手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图
GMT+8, 2025-8-13 01:52 , Processed in 0.502100 second(s), 31 queries , Gzip On.