Skip to main content

Scientific matplotlib plot rcParams configuration template python package.

Project description

PyPi PyPI Downloads Requires Python 3.6+

spt

Scientific matplotlib plot rcParams configuration template python package.


Installation

  • via pip:
pip install spt

# update
pip install -U spt

# install spt and examples dependencies
pip install ".[examples]"
  • via git:
pip install git+https://gitee.com/yangsl306/spt.git
# or
pip install git+https://github.com/Bit-Part-Young/spt.git
  • via source code:
git clone https://gitee.com/yangsl306/spt.git
# or
git clone https://github.com/Bit-Part-Young/spt.git

cd spt

# create virtual environment
python -m venv venv
# activate virtual environment
source venv/bin/activate

pip install .
# or 
pip install -r requirements.txt

# editable mode
pip install -e .

Usage

Full example codes can be found in examples folder.


set_plot_params()

script: plot.py

  • plot:
import matplotlib.pyplot as plt
from spt.plot_params import set_plot_params

...

set_plot_params()

fig, ax = plt.subplots()

...

  • Figure:
sin.png

set_roman_plot_params()

script: plot_roman.py

  • requirements:

To use Times New Roman font, you need to do:

# copy roman-ttf fonts to your matplotlib font path in specific conda env
cp roman-ttf/* <conda_env>/lib/pythonXXX/site-packages/matplotlib/mpl-data/fonts/ttf/

# remove matplotlib cache
rm -rf ~/.cache/matplotlib

  • plot:
import matplotlib.pyplot as plt
from spt.plot_params import set_roman_plot_params

...

set_roman_plot_params()

fig, ax = plt.subplots()

...

  • Figure:
sin_roman.png
  • 3d plot:

script: plot_3d.py

import matplotlib.pyplot as plt
from spt.plot_params import set_roman_plot_params

...

set_roman_plot_params(
    axes_labelpad=15,
    legend_handletextpad=0.0,
    legend_fontsize=22,
    savefig_bbox="standard",
)

fig, ax = plt.subplots(subplot_kw={"projection": "3d"}, figsize=(10, 8))

...

  • Figure:
scatter_3d.png

Chinese characters plot

script: plot_zh.py

  • requirements:

To use Chinese(SimHei 黑体) font, you need to do:

# copy SimHei-ttf fonts to matplotlib font path in specific conda env
cp chinese-config/chinese-ttf/* <conda_env>/lib/pythonXXX/site-packages/matplotlib/mpl-data/fonts/ttf/

# backup matplotlibrc file
cd <conda_env>/lib/pythonXXX/site-packages/matplotlib/mpl-data/
cp matplotlibrc matplotlibrc_origin
cd -

# copy modified matplotlibrc file
cp chinese-config/matplotlibrc <conda_env>/lib/pythonXXX/site-packages/matplotlib/mpl-data/

# remove matplotlib cache
rm -rf ~/.cache/matplotlib

matplotlibrc modification:

# origin 
font.family:  sans-serif
font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
axes.unicode_minus: True  # use Unicode for the minus symbol rather than hyphen.  See

# modification
font.family:  sans-serif
font.sans-serif: DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif, SimHei, Times New Roman, Times
axes.unicode_minus: False  # use Unicode for the minus symbol rather than hyphen.  See

  • plot:
import matplotlib.pyplot as plt
from spt.plot_params import set_roman_plot_params

...

set_roman_plot_params()

fig, ax = plt.subplots()

ax.plot(x, y, label="正弦函数")

ax.set(xlabel="x", ylabel="y")

# legend 字体设置为 SimHei
ax.legend(prop={"family": "SimHei"})

...

  • Figure
sin_zh.png

Scientific Figure Examples

  • Example 1:

script: phase_stability_Nb3Si_plot.py

Figure:

substitution_energy_Nb3Si.png
  • Example 2:

script: b_fit_cal.py

Figure:

b_fit_cal.png

To do

  • 完善 setup.py 安装脚本
  • 3D 图绘制 z 轴标签显示不全("savefig.bbox" 参数设为 "tight" 时,会出现这种情况,需设为 "standard",多余空白需自己后处理掉;jupyter notebook 中 z 轴标签仍显示不全
  • 安装 spt package 后,使用 fig, ax = plt.subplots() 命令,VSCode 的 Pylance 插件无法自动识别 ax 对象的属性和方法(matplotlib 3.8 版本的问题,需将 matplotlib 版本降到 3.8 以下)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spt-0.2.3.tar.gz (5.9 kB view hashes)

Uploaded Source

Built Distribution

spt-0.2.3-py3-none-any.whl (5.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page