diff --git a/README.md b/README.md
index 82590b7..9d390a5 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,13 @@ The `plotLaTeX` package is a recent project to make exporting Python data to a L
**[Stemplot](examples/StemPlot.ipynb)**
-
+
+
+
+**[Scatterplot](examples/ScatterPlot.ipynb)**
+
+
+
diff --git a/examples/LinePlot.ipynb b/examples/LinePlot.ipynb
index 61209f4..db37980 100644
--- a/examples/LinePlot.ipynb
+++ b/examples/LinePlot.ipynb
@@ -15,6 +15,7 @@
"metadata": {},
"outputs": [],
"source": [
+ "import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"from plotLaTeX import LinePlot"
@@ -23,24 +24,51 @@
{
"cell_type": "code",
"execution_count": 2,
- "id": "de57538f-7a1b-4822-b032-68aa191f5366",
+ "id": "a3076317-1bdd-4459-a5b0-610f335c4291",
"metadata": {},
"outputs": [],
"source": [
- "Lplt = LinePlot()"
+ "# create two signals to be plottet over x\n",
+ "x = np.linspace(1, 2 * np.pi)\n",
+ "y1 = np.sin(x)\n",
+ "y2 = np.cos(x)"
]
},
{
"cell_type": "code",
- "execution_count": 3,
- "id": "a3076317-1bdd-4459-a5b0-610f335c4291",
+ "execution_count": 4,
+ "id": "2f225c83-28c8-4083-80e1-1948efeee5e0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(7.5, 3))\n",
+ "plt.plot(x, y1, label=\"$y_1(x)$\")\n",
+ "plt.plot(x, y2, label=\"$y_1(x)$\")\n",
+ "plt.legend()\n",
+ "plt.xlabel(\"k\")\n",
+ "plt.grid(alpha=0.3)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "de57538f-7a1b-4822-b032-68aa191f5366",
"metadata": {},
"outputs": [],
"source": [
- "# create two signals to be plottet over x\n",
- "x = np.linspace(1, 2 * np.pi)\n",
- "y1 = np.sin(x)\n",
- "y2 = np.cos(x)"
+ "Lplt = LinePlot()"
]
},
{
diff --git a/examples/ScatterPlot.ipynb b/examples/ScatterPlot.ipynb
new file mode 100644
index 0000000..18194d0
--- /dev/null
+++ b/examples/ScatterPlot.ipynb
@@ -0,0 +1,209 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "482d7919-5c6e-4c49-904b-86ba6e414c49",
+ "metadata": {},
+ "source": [
+ "# Scatterplot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "16937eba-4b8b-4819-a1c4-2e451a315c14",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "from plotLaTeX import ScatterPlot\n",
+ "\n",
+ "np.random.seed(seed=42)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "bedf7c11-68a2-4beb-9d57-1c9c59204c18",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# create random data\n",
+ "x = np.linspace(0, 10, 50)\n",
+ "y = np.sin(x) + np.random.normal(scale=0.2, size=len(x))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "790ee155-4e02-4cd6-9027-d7e71ac7b1aa",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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zBht3bq16ZhhGNq6davy8/MdjAzNmaapwsJCPffcc9q2bZuys7OdDgnnue666/TWW29p7969TT9jx47VzJkztXfvXiUkJDgdIiRdffXVrUp8vfPOOxo4cKBDEaEtZ86ckdfbMkVISEiQYRgORYSOZGdny+/3t8glampqtHPnTsdyCYbIo0BRUZFmz56tsWPHaty4cVq1apVOnz6tOXPmOB0a/mn+/Pl6+umn9fzzz6tv375Nc1pSUlLUq1cvh6ODJPXt27fVnNg+ffpowIABzJWNIgsXLtSECRP04IMP6utf/7pKSkr06KOP6tFHH3U6NDRTUFCgBx54QJdeeqkuv/xyvfHGG/rlL3+pO+64w+nQ4tapU6f03nvvNT0+cuSI9u7dq9TUVF166aVasGCBfvrTn+oLX/iCsrOztWTJEmVmZjatNI84E1HhkUceMS+99FKzZ8+e5rhx48zXX3/d6ZDQjKQ2f373u985HRo68OUvf9m86667nA4D59m8ebOZm5trJiYmmsOGDTMfffRRp0PCeWpqasy77rrLvPTSS82kpCRz8ODB5o9+9COzvr7e6dDi1ksvvdTm99Ds2bNN0zRNwzDMJUuWmOnp6WZiYqJ53XXXmYcOHXIsXupgAgAAwFbMwQQAAICtSDABAABgKxJMAAAA2IoEEwAAALYiwQQAAICtSDABAABgKxJMAAAA2IoEEwAcdPvtt1vaaeODDz6Qx+PR3r17u/W+EydO1IIFC7r1GgDQHhJMAAAA2IoEEwAAALYiwQQAm1RVVcnv9+vBBx9sOvaPf/xDPXv21NatW0N6jeLiYl1zzTXq16+fBgwYoGnTpunw4cOtzjt48KAmTJigpKQk5ebmavv27S1+v2/fPk2dOlUXXnih0tPTddttt+mTTz7p3h8IACEiwQQAm/h8Pj3++OP6yU9+ot27d6u2tla33XabCgsLdd1114X0GqdPn1ZRUZF2796trVu3yuv16uabb5ZhGC3O+8EPfqC7775bb7zxhvLz81VQUKDjx49Lkk6ePKmvfOUrysvL0+7du1VcXKyKigp9/etft/1vBoC29HA6AACIJTfeeKPmzp2rmTNnauzYserTp49WrFgR8vO/9rWvtXj8+OOPy+fzaf/+/crNzW06XlhY2HTuunXrVFxcrN/+9re65557tGbNGuXl5bXoSX388ceVlZWld955R1/84he7+VcCQMfowQQAm/3iF7/QZ599pj/+8Y/auHGjEhMTdfToUV144YVNP82Tv+beffddzZgxQ4MHD1ZycrIGDRokSTp69GiL8/Lz85v+u0ePHho7dqwOHDggSXrzzTf10ksvtXi/YcOGSVKbw+0AYDd6MAHAZocPH9bHH38swzD0wQcfaMSIEcrMzGxRWig1NbXN5xYUFGjgwIF67LHHlJmZKcMwlJubq7Nnz4b8/qdOnVJBQYFWrlzZ6ncZGRmW/x4AsIoEEwBsdPbsWc2aNUvf+MY3dNlll+nOO+/UW2+9pbS0NA0dOrTD5x4/flyHDh3SY489pmuvvVaS9Oqrr7Z57uuvv64vfelLkqTPPvtMe/bsUWFhoSRp9OjR+s///E8NGjRIPXpwmQcQeQyRA4CNfvSjHykQCGj16tW699579cUvflF33HFHSM/t37+/BgwYoEcffVTvvfeetm3bpqKiojbPXbt2rZ577jkdPHhQ8+fP14kTJ5reZ/78+aqurtaMGTO0a9cuHT58WH/72980Z84cBYNB2/5WAGgPCSYA2OTll1/WqlWr9NRTTyk5OVler1dPPfWU/v73v2vdunWdPt/r9eqZZ57Rnj17lJubq4ULF+rnP/95m+f+7Gc/089+9jONHDlSr776ql544QVddNFFkqTMzEy99tprCgaDuuGGGzRixAgtWLBA/fr1k9fLZR9A+HlM0zSdDgIAAACxg1tZAAAA2IoEEwAAALYiwQQAAICtSDABAABgKxJMAAAA2IoEEwAAALYiwQQAAICtSDABAABgKxJMAAAA2IoEEwAAALYiwQQAAICtSDABAABgq/8fCzcFp3FFn98AAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.figure(figsize=(7.5, 3))\n",
+ "plt.scatter(x, y, label=\"Data points\")\n",
+ "plt.xlabel(\"x-label\")\n",
+ "plt.ylabel(\"y-label\")\n",
+ "plt.grid(alpha=0.3)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "e22290f0-af23-4d2e-99ee-9f4fd6c87bbd",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "Splt = ScatterPlot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "c43b745f-b365-4cf4-b47a-d0c69004027c",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Set x-values.\n",
+ "Current data stack:\n",
+ " x\n",
+ "0 0.000000\n",
+ "1 0.204082\n",
+ "2 0.408163\n",
+ "3 0.612245\n",
+ "4 0.816327\n"
+ ]
+ }
+ ],
+ "source": [
+ "# add the x reference\n",
+ "Splt.add_xvals(x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "0c8849c2-3191-49e2-8e8d-01dbf5e1ece8",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Added y with 50 entries.\n",
+ "Current data stack:\n",
+ " x y\n",
+ "0 0.000000 0.099343\n",
+ "1 0.204082 0.175015\n",
+ "2 0.408163 0.526462\n",
+ "3 0.612245 0.879312\n",
+ "4 0.816327 0.681804\n"
+ ]
+ }
+ ],
+ "source": [
+ "# add the first y signal\n",
+ "Splt.add_yvals(y, y_name=\"y\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "33e0b3b4-623f-40a0-ba62-fb094b452cc4",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "**Exporting scatter data**\n",
+ "\n",
+ "Current data stack:\n",
+ " x y\n",
+ "0 0.000000 0.099343\n",
+ "1 0.204082 0.175015\n",
+ "2 0.408163 0.526462\n",
+ "3 0.612245 0.879312\n",
+ "4 0.816327 0.681804\n",
+ "\n",
+ "***********\n",
+ "LaTeX code for scatter plot:\n",
+ "***********\n",
+ "\n",
+ "\\begin{figure}[h]\n",
+ " \\centering\n",
+ " \\tikzstyle{every node}=[font=\\footnotesize]\n",
+ " \\begin{tikzpicture}\n",
+ " \\begin{axis}[\n",
+ " ylabel={y-label},\n",
+ " xlabel={x-label},\n",
+ " width=7.5cm,\n",
+ " height=3cm,\n",
+ " grid=both,\n",
+ " legend columns=1,\n",
+ " legend style={at={(0,1.05)}, anchor=south west, draw=white!15!black},\n",
+ " ]\n",
+ " \\addplot+[only marks] \n",
+ " table[x=x,y=y,col sep=comma]{scatter_results.csv};\n",
+ " \\addlegendentry{y};\n",
+ " \\end{axis}\n",
+ " \\end{tikzpicture}\n",
+ " \\caption{Caption of the scatter plot.}\n",
+ " \\label{fig:Caption_of_the_scatter_plot.}\n",
+ "\\end{figure}\n"
+ ]
+ }
+ ],
+ "source": [
+ "# save the data as \".csv\" and get the latex figure code\n",
+ "Splt.export(f_name=\"scatter_results.csv\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "55886898-35d7-4e32-9b2a-371e728badeb",
+ "metadata": {},
+ "source": [
+ "___"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.12.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/images/example_scatter.png b/images/example_scatter.png
new file mode 100644
index 0000000..d055d6f
Binary files /dev/null and b/images/example_scatter.png differ
diff --git a/plotLaTeX/__init__.py b/plotLaTeX/__init__.py
index bd4d04a..f12af0b 100644
--- a/plotLaTeX/__init__.py
+++ b/plotLaTeX/__init__.py
@@ -3,5 +3,14 @@
from .box_plot import BoxPlot
from .bar_plot import Barplot, MultipleBars
from .stem_plot import StemPlot
+from .scatter_plot import ScatterPlot
-__all__ = ["LaTeXplot", "HistPlot", "BoxPlot", "Barplot", "MultipleBars", "StemPlot"]
+__all__ = [
+ "LaTeXplot",
+ "HistPlot",
+ "BoxPlot",
+ "Barplot",
+ "MultipleBars",
+ "StemPlot",
+ "ScatterPlot",
+]
diff --git a/plotLaTeX/scatter_plot.py b/plotLaTeX/scatter_plot.py
new file mode 100644
index 0000000..afb20dd
--- /dev/null
+++ b/plotLaTeX/scatter_plot.py
@@ -0,0 +1,110 @@
+import pandas as pd
+import numpy as np
+
+
+class ScatterPlot:
+ """
+ A helper class to organize and export multiple datasets for scatter plotting.
+ It stores x–y matrix-like structures and can export data and produce LaTeX code.
+ """
+
+ def __init__(self):
+ self.data_stack = dict()
+ self.y_name_list = list()
+ self.x_vals = None
+
+ def data_info(self):
+ """Print current stored data."""
+ print("Current data stack:")
+ self.DF = pd.DataFrame(self.data_stack)
+ print(self.DF.head())
+
+ def add_xvals(self, x_vals, x_axs_name="x"):
+ """Store the common x-values used for scatter plotting."""
+ print("Set x-values.")
+ self.x_axs_name = x_axs_name
+ self.x_vals = x_vals
+ self.n_x_vals = len(x_vals)
+
+ self.data_stack[x_axs_name] = x_vals
+ self.data_info()
+
+ def add_yvals(self, y_vals, y_name):
+ """
+ Add an additional dependent variable (scatter y-values).
+ y_name must be unique.
+ """
+ self.n_y_vals = len(y_vals)
+
+ if y_name in self.y_name_list:
+ print("Please use a different name to add more y-data.")
+ else:
+ self.y_name_list.append(y_name)
+ self.data_stack[y_name] = y_vals
+ print(f"Added {y_name} with {len(y_vals)} entries.")
+
+ self.data_info()
+
+ def export(self, path="", f_name="scatter_results.csv"):
+ """
+ Export stored x–y data to a csv file.
+ If no x-values were provided, create a default index.
+ """
+ if self.x_vals is None or len(self.x_vals) == 0:
+ print("No x-values found -> using index as x-axis.")
+ self.data_stack["x"] = np.arange(self.n_y_vals)
+
+ self.f_name = f_name
+
+ print("**Exporting scatter data**\n")
+ self.data_info()
+
+ pd.DataFrame(self.data_stack).to_csv(path + f_name, index=False)
+
+ print("\n***********")
+ print("LaTeX code for scatter plot:")
+ print("***********\n")
+ self.latex_code()
+
+ def latex_code(self, imports=False, caption="Caption of the scatter plot."):
+ """
+ Produce pgfplots LaTeX code for scatter plots.
+ """
+ if imports:
+ print("\tDon’t forget to import the packages:\n")
+ print(r"\usepackage{graphicx}")
+ print(r"\usepackage{tikz,pgfplots}")
+ print("\n*\t*********\n")
+
+ print(r"\begin{figure}[h]")
+ print(r" \centering")
+ print(r" \tikzstyle{every node}=[font=\footnotesize]")
+ print(r" \begin{tikzpicture}")
+ print(r" \begin{axis}[")
+ print(r" ylabel={y-label},")
+ print(r" xlabel={x-label},")
+ print(r" width=7.5cm,")
+ print(r" height=3cm,")
+ print(r" grid=both,")
+ print(r" legend columns=" + str(len(self.y_name_list)) + ",")
+ print(
+ r" legend style={at={(0,1.05)}, anchor=south west, draw=white!15!black},"
+ )
+ print(r" ]")
+
+ # scatter plot for every y-series
+ for yn in self.y_name_list:
+ print(r" \addplot+[only marks] ")
+ print(
+ f" table[x={self.x_axs_name},y={yn},col sep=comma]"
+ + r"{"
+ + self.f_name
+ + r"};"
+ )
+ print(r" \addlegendentry{" + yn + r"};")
+
+ print(r" \end{axis}")
+ print(r" \end{tikzpicture}")
+ print(r" \caption{" + caption + "}")
+ print(r" \label{fig:" + caption.replace(" ", "_") + "}")
+ print(r"\end{figure}")