Plotting with Configurations in pyprocar — PyProcar 6.2.1 documentation

Skip to main content
`Ctrl`+`K`

Note

Go to the end to download the full example code.

# Plotting with Configurations in pyprocar

This example illustrates how to utilize various configurations for plotting the density of states (DOS) using the pyprocar package. It provides a structured way to explore and demonstrate different configurations for the dosplot function.

## Preparation

Before diving into plotting, we need to download the example files. Use the following code to do this. Once downloaded, specify the data_dir to point to the location of the downloaded data.

Downloading example

     import pyprocar

     data_dir = pyprocar.download_example(
                                 save_dir='',
                                 material='Fe',
                                 code='vasp',
                                 spin_calc_type='spin-polarized-colinear',
                                 calc_type='dos'
                                )

    import os

    import pyprocar

    # Define the directory containing the example data
    code = "vasp"
    data_dir = os.path.join(
        pyprocar.utils.DATA_DIR, "examples", "Fe", code, "spin-polarized-colinear", "dos"
    )

    spins = [0, 1]

    # Section 1: Locating and Printing Configuration Files
    # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #
    # This section demonstrates where the configuration files are located in the package.
    # It also shows how to print the configurations by setting print_plot_opts=True.
    #

    # Path to the configuration files in the package
    config_path = os.path.join(pyprocar.__path__[0], "cfg")
    print(f"Configuration files are located at: {config_path}")

    # Print the configurations
    pyprocar.dosplot(code=code, dirname=data_dir, fermi=5.599480, print_plot_opts=True)

    Configuration files are located at: C:\Users\lllang\Desktop\Current_Projects\pyprocar\pyprocar\cfg

                --------------------------------------------------------
                There are additional plot options that are defined in a configuration file.
                You can change these configurations by passing the keyword argument to the function
                To print a list of plot options set print_plot_opts=True

                Here is a list modes : plain , parametric , parameteric_line , stack , stack_orbitals , stack_species , overlay , overlay_orbitals , overlay_species
                --------------------------------------------------------
    plot_type : PlotType.DENSITY_OF_STATES
    custom_settings : {}
    modes : ['plain', 'parametric', 'parameteric_line', 'stack', 'stack_orbitals', 'stack_species', 'overlay', 'overlay_orbitals', 'overlay_species']
    cmap : jet
    colors : ['red', 'green', 'blue', 'cyan', 'magenta', 'yellow', 'orange', 'purple', 'brown', 'navy', 'maroon', 'olive']
    colorbar_title : Atomic Orbital Projections
    colorbar_title_size : 15
    colorbar_title_padding : 20
    colorbar_tick_labelsize : 10
    fermi_color : black
    fermi_linestyle : dotted
    fermi_linewidth : 1
    figure_size : (9, 6)
    font : Arial
    font_size : 16
    grid : False
    grid_axis : both
    grid_color : grey
    grid_linestyle : solid
    grid_linewidth : 1
    grid_which : major
    legend : True
    linestyle : ['solid', 'dashed']
    linewidth : [1, 1]
    marker : ['o', 'v', '^', 'D']
    markersize : [0.2, 0.2]
    opacity : [1.0, 1.0]
    plot_bar : True
    plot_color_bar : True
    plot_total : True
    savefig : None
    spin_colors : ['black', 'red']
    spin_labels : ['$\\uparrow$', '$\\downarrow$']
    title : None
    verbose : True
    weighted_color : True
    weighted_width : False
    clim : None
    stack_y_label : DOS
    x_label :
    y_label :
    dpi : figure

    (<Figure size 900x600 with 1 Axes>, <Axes: xlabel='Energy - E$_F$ (eV)', ylabel='DOS'>)

    # Section 2: Changing cmap, clim, and Fermi line properties
    # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #
    # This section demonstrates how to change the colormap (cmap), color limits (clim),
    # and Fermi line properties (color, linestyle, and linewidth).
    #

    pyprocar.dosplot(
        code=code,
        dirname=data_dir,
        fermi=5.599480,
        atoms=[0],
        orbitals=[4, 5, 6, 7, 8],
        mode="parametric",
        cmap="viridis",  # Colormap
        clim=[0, 1],  # Color limits
        fermi_color="red",  # Fermi line color
        fermi_linestyle="--",  # Fermi line linestyle
        fermi_linewidth=2.0,  # Fermi line linewidth
    )

                --------------------------------------------------------
                There are additional plot options that are defined in a configuration file.
                You can change these configurations by passing the keyword argument to the function
                To print a list of plot options set print_plot_opts=True

                Here is a list modes : plain , parametric , parameteric_line , stack , stack_orbitals , stack_species , overlay , overlay_orbitals , overlay_species
                --------------------------------------------------------

    (<Figure size 900x600 with 2 Axes>, <Axes: xlabel='Energy - E$_F$ (eV)', ylabel='DOS'>)

    # Section 4: Setting the Figure Size and DPI
    # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #
    # This section demonstrates how to set the figure size and dots per inch (DPI) for the plot.
    #

    pyprocar.dosplot(
        code=code,
        dirname=data_dir,
        fermi=5.599480,
        atoms=[0],
        orbitals=[4, 5, 6, 7, 8],
        mode="parametric_line",
        clim=[0, 1],
        figure_size=(10, 6),  # Figure size (width, height)
        dpi=300,  # Dots per inch
        grid=True,  # Boolean for grid
    )

                --------------------------------------------------------
                There are additional plot options that are defined in a configuration file.
                You can change these configurations by passing the keyword argument to the function
                To print a list of plot options set print_plot_opts=True

                Here is a list modes : plain , parametric , parameteric_line , stack , stack_orbitals , stack_species , overlay , overlay_orbitals , overlay_species
                --------------------------------------------------------

    (<Figure size 1000x600 with 2 Axes>, <Axes: xlabel='Energy - E$_F$ (eV)', ylabel='DOS'>)

Total running time of the script: (0 minutes 1.257 seconds)

Gallery generated by Sphinx-Gallery