Skip to main content

Scientific matplotlib plot rcParams configuration template python package.

Project description

spt

CI Status PyPi PyPI Downloads Requires Python 3.8+

           _
 ___ _ __ | |_
/ __| '_ \| __|
\__ \ |_) | |_
|___/ .__/ \__|
    |_|

spt: A Scientific matplotlib plot rcParams configuration template python package.


Installation

  • via pip:
pip install -U spt

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

cd spt

# virtual environment
python -m venv venv
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.


fonts

  • Times New Roman: Copy TimesNewRoman*.ttf fonts to ~/.fonts or ~/.local/share/fonts or matplotlib font path in specific conda env, then remove matplotlib cache, relogin.
cp fonts/TimesNewRoman*.ttf ~/.fonts
# or
cp fonts/TimesNewRoman*.ttf ~/.local/share/fonts
# or
cp fonts/TimesNewRoman*.ttf <conda_env>/lib/pythonXXX/site-packages/matplotlib/mpl-data/fonts/ttf/

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

# check fonts
fc-list lang:en | grep -i "Times New Roman"
  • Chinese: Copy SimHei.ttf font to ~/.fonts or ~/.local/share/fonts or matplotlib font path in specific conda env, backup original matplotlibrc file, copy modified matplotlibrc file to mpl-data path, then remove matplotlib cache, relogin.
cp fonts/SimHei.ttf ~/.fonts
# or
cp fonts/SimHei.ttf ~/.local/share/fonts
# or
cp fonts/SimHei.ttf <conda_env>/lib/pythonXXX/site-packages/matplotlib/mpl-data/fonts/ttf/

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

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

# check fonts
fc-list lang:zh | grep -i "SimHei"

matplotlibrc modification:

# Original
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.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

set_plot_params()

  • code snippets (complete script: plot.py):
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()

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 code snippets (complete 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

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

Figure:

dot_line.png


Figure:

substitution_energy_Nb3Si.png


Figure:

b_fit_cal.png


Figure:

xrd.png

Figure:

AlMoZr_ternary.png

Figure:

AlMoZr_convex_hull.png

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.4.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

spt-0.2.4-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file spt-0.2.4.tar.gz.

File metadata

  • Download URL: spt-0.2.4.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.8

File hashes

Hashes for spt-0.2.4.tar.gz
Algorithm Hash digest
SHA256 db4fc35c7cb087c20fdd3d2a84cecc3eba30df416a15125bfb328561670b6a10
MD5 4878bb140f4a019319959f70274a53e5
BLAKE2b-256 df75516095592e324ac31fbf52b77b7732a0731962094d21f8b09ba39261fd88

See more details on using hashes here.

File details

Details for the file spt-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: spt-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.8

File hashes

Hashes for spt-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 177d6428eafeb0a6e5db8a3af9bf03fa5e659ba695b9cdb27c83bc5b703869a5
MD5 d475527c949fd3bb3bc92a7c0a9cd411
BLAKE2b-256 730a459a6217be26d5b4cbb9a0a818db1b6252c556cf7351a5e741bae80abf4e

See more details on using hashes here.

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