计算化学公社

标题: p4vasp导出的pdos数据在origin作图如何美化 [打印本页]

作者
Author:
zhengjflq    时间: 2020-2-6 21:47
标题: p4vasp导出的pdos数据在origin作图如何美化
求助各位老师,如题,新手用vasp计算pdos,使用p4vasp导出数据,使用origin作图,图线全是黑色,如何进一步处理和美化呢?谢谢

作者
Author:
pukkie    时间: 2020-2-8 13:21
双击线条可以改变线条颜色样式粗细这些参数。
作者
Author:
zhengjflq    时间: 2020-2-15 10:09
pukkie 发表于 2020-2-8 13:21
双击线条可以改变线条颜色样式粗细这些参数。

非常感谢
作者
Author:
beefly    时间: 2020-2-15 17:04
有个python写的脚本mcu能画很漂亮的图
https://hungpham2017.github.io/mcu/
https://github.com/hungpham2017/mcu
作者
Author:
fanyiang    时间: 2020-12-17 15:35
楼主,应该是p4vasp输出所有的数据都是放到两列,所以画图的画只有一个x 一个y,是没有办法改这些线的颜色的,必须要把所有的数据都分成多个x多个y来画图。我用python写了一个小的脚本可以参考:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sat Dec 12 20:15:08 2020

  4. @author: fanyiang
  5. """

  6. import pandas as pd

  7. df0=pd.read_csv('split.csv',header=None)
  8. l=len(df0)
  9. l=l+1
  10. print(l)
  11. print(df0.head())

  12. df=df0.iloc[0:2000,:].reset_index(drop=True) #reset_index(drop=True) 用来去掉之前dataframe的index,重新从0生成index

  13. print(df.tail())


  14. df_values=locals()
  15. l=int(l/2001)
  16. print(l)
  17. for i in range(2,l+1):
  18.     l1=2001*i-2001
  19.     l2=2001*i-1
  20.     df_values['df'+str(i)]=df0.iloc[l1:l2,:].reset_index(drop=True)
  21.     df=pd.concat([df,df_values['df'+str(i)]],axis=1,join='outer')

  22. print(df)
  23. df.to_csv('dos.csv',header=None,index=None)
  24. print('Done!')
复制代码

我这里是设置了NEDOS=2000,所以p4vasp每2000行输出一个空行,所以我设置每隔2001行取出两列数排到旁边的新列中
作者
Author:
jbgande    时间: 2021-7-9 16:27
beefly 发表于 2020-2-15 17:04
有个python写的脚本mcu能画很漂亮的图
https://hungpham2017.github.io/mcu/
https://github.com/hungpha ...

试了半天才发现这个库只能在linux下使用




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3