Web Analytics

matplot2tikz

⭐ 266 stars Vietnamese by ErwindeGelder

🌐 Ngôn ngữ

matplot2tikz

Tên trước đây là tikzplotlib.

Phiên bản PyPI Giấy phép GitHub Phiên bản Python PyPI Ruff Kiểm tra với mypy codecov PyPI Downloads

Đây là matplot2tikz, một công cụ Python dùng để chuyển đổi các hình vẽ matplotlib thành các hình PGFPlots (PGF/TikZ) như

để nhúng trực tiếp vào các tài liệu LaTeX hoặc ConTeXt.

Đầu ra của matplot2tikz là ở dạng PGFPlots, một thư viện TeX dựa trên PGF/TikZ và mô tả biểu đồ dưới dạng các trục, dữ liệu, v.v. Do đó, đầu ra của matplot2tikz

so với đầu ra TikZ thô. Ví dụ, hình vẽ matplotlib

import matplotlib.pyplot as plt
import numpy as np

plt.style.use("ggplot")

t = np.arange(0.0, 2.0, 0.1) s = np.sin(2 np.pi t) s2 = np.cos(2 np.pi t) plt.plot(t, s, "o-", lw=4.1) plt.plot(t, s2, "o-", lw=4.1) plt.xlabel("time (s)") plt.ylabel("Voltage (mV)") plt.title("Simple plot $\\frac{\\alpha}{2}$") plt.grid(True)

import matplot2tikz

matplot2tikz.save("test.tex")

--> (see above) gives

\begin{tikzpicture}

\definecolor{chocolate2267451}{RGB}{226,74,51} \definecolor{dimgray85}{RGB}{85,85,85} \definecolor{gainsboro229}{RGB}{229,229,229} \definecolor{steelblue52138189}{RGB}{52,138,189} \begin{axis}[ axis background/.style={fill=gainsboro229}, axis line style={white}, tick align=outside, tick pos=left, title={Simple plot \(\displaystyle \frac{\alpha}{2}\)}, x grid style={white}, xlabel=\textcolor{dimgray85}{time (s)}, xmajorgrids, xmin=-0.095, xmax=1.995, xtick style={color=dimgray85}, y grid style={white}, ylabel=\textcolor{dimgray85}{Voltage (mV)}, ymajorgrids, ymin=-1.1, ymax=1.1, ytick style={color=dimgray85} ] \addplot [line width=1.64pt, chocolate2267451, mark=*, mark size=3, mark options={solid}] table {% 0 0 % [...] 1.9 -0.587785252292473 }; \addplot [line width=1.64pt, steelblue52138189, mark=*, mark size=3, mark options={solid}] table {% 0 1 % [...] 1.9 0.809016994374947 }; \end{axis}

\end{tikzpicture}

(Hãy sử dụng get_tikz_code() thay vì save() nếu bạn muốn lấy mã dưới dạng chuỗi.)

Việc điều chỉnh biểu đồ rất đơn giản và có thể thực hiện như một phần trong quy trình làm việc với TeX. Hướng dẫn tuyệt vời về PGFPlots chứa nhiều ví dụ tuyệt vời về cách làm cho biểu đồ của bạn trông đẹp hơn nữa.

Tất nhiên, không phải tất cả các hình được tạo bằng matplotlib đều có thể chuyển đổi mà không gặp lỗi. Đáng chú ý, biểu đồ 3D không hoạt động.

Cài đặt

matplot2tikz có sẵn trên Python Package Index, vì vậy chỉ cần thực hiện

pip install matplot2tikz
để cài đặt.

Cách sử dụng

``python import matplot2tikz

matplot2tikz.save("mytikz.tex") # or matplot2tikz.save("mytikz.tex", flavor="context") `

để lưu tệp TikZ dưới tên mytikz.tex.

`latex \input{/path/to/mytikz} `

Ngoài ra, hãy đảm bảo rằng các gói cho PGFPlots và hỗ trợ Unicode đầy đủ đã được đưa vào phần đầu của tài liệu của bạn:

`latex \usepackage[utf8]{inputenc} \usepackage{pgfplots} \DeclareUnicodeCharacter{2212}{−} \usepgfplotslibrary{groupplots,dateplot} \usetikzlibrary{patterns,shapes.arrows} \pgfplotsset{compat=newest} `

or:

`latex \setupcolors[state=start] \usemodule[tikz] \usemodule[pgfplots] \usepgfplotslibrary[groupplots,dateplot] \usetikzlibrary[patterns,shapes.arrows] \pgfplotsset{compat=newest} \unexpanded\def\startgroupplot{\groupplot} \unexpanded\def\stopgroupplot{\endgroupplot} `

Bạn cũng có thể lấy mã thông qua:

`python import matplot2tikz

matplot2tikz.Flavors.latex.preamble() # or matplot2tikz.Flavors.context.preamble() `

`python import matplotlib.pyplot as plt import numpy as np

# ... do your plotting

import matplot2tikz

matplot2tikz.clean_figure() matplot2tikz.save("test.tex") ` Lệnh này sẽ loại bỏ các điểm nằm ngoài giới hạn trục, đơn giản hóa các đường cong và giảm mật độ điểm cho độ phân giải mục tiêu đã chỉ định.

matplot2tikz vs. tikzplotlib

Thư viện matplot2tikz này bắt nguồn từ dự án tikzplotlib. Lý do tạo ra một thư viện mới là vì tikzplotlib không còn được duy trì và việc duy trì chỉ có thể thực hiện bởi chủ sở hữu duy nhất của thư viện tikzplotlib. Nếu bạn cần sử dụng mã của bên thứ ba đã phụ thuộc vào tikzplotlib, đề xuất là thay đổi phụ thuộc tikzplotlib thành matplot2tikz. Nếu điều này không khả thi, một cách xử lý là đặt đoạn mã sau trước khi nhập mã của bên thứ ba:

` import sys import matplot2tikz sys.modules["tikzplotlib"] = matplot2tikz # Do other imports, e.g., using import my_third_party_library # If tikzplotlib is used in this library, it will automatically use matplot2tikz instead. `

Đóng góp

Nếu bạn gặp lỗi, muốn đóng góp, có những ví dụ hay về những gì matplot2tikz có thể làm được, hoặc chỉ đơn giản là muốn tìm thêm thông tin, hãy truy cập trang GitHub của matplot2tikz.

Để đóng góp, hãy làm theo các bước sau:

git clone git@github.com:ErwindeGelder/matplot2tikz.git. Vì vậy, nếu muốn thay đổi, hãy thực hiện trên một nhánh riêng. Ví dụ, bạn có thể tạo một nhánh mới bằng git checkout -b feature/my_awesome_new_feature.
  • Trước khi đẩy thay đổi, đảm bảo mã nguồn tuân thủ các quy tắc linting và các kiểm thử đều
thành công. Chạy
tox. Lệnh này sẽ kiểm tra linting và chạy tất cả các script kiểm thử. Để thực hiện các bước này thủ công, dùng các lệnh sau: /reports/coverage_html/index.html.

LƯU Ý: Hiện tại chưa phải tất cả mã nguồn đều được kiểm thử. Lý tưởng là tất cả đều được kiểm thử, nhưng trước mắt, hãy đảm bảo rằng tất cả mã mới đều được kiểm thử.

hãy tạo một pull request. Lý tưởng là có ít nhất một người kiểm duyệt xem xét pull request trước khi gộp.

Lưu ý rằng hiện tại chỉ những "Chủ sở hữu mã" mới có thể hợp nhất các pull request vào nhánh main`. Điều này nhằm đảm bảo rằng không phải ai cũng có thể làm hỏng mã nguồn chính (ngay cả khi vô ý). Nếu bạn muốn trở thành "Chủ sở hữu mã", hãy cho chúng tôi biết!

Giấy phép

matplot2tikz được phát hành theo giấy phép MIT.

--- Tranlated By Open Ai Tx | Last indexed: 2025-12-11 ---