From 739f1fdd401f9c5076df5f16442cc7eea687e91a Mon Sep 17 00:00:00 2001 From: wakaharu999 Date: Wed, 10 Jun 2026 21:36:06 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data_profiling/visualisation/context.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/data_profiling/visualisation/context.py b/src/data_profiling/visualisation/context.py index bb7228e2c..fde43c993 100644 --- a/src/data_profiling/visualisation/context.py +++ b/src/data_profiling/visualisation/context.py @@ -37,6 +37,11 @@ def manage_matplotlib_context() -> Any: "image.cmap": "Greys", "font.family": ["sans-serif"], "font.sans-serif": [ + "Meiryo", + "Hiragino Sans", + "Hiragino Kaku Gothic ProN", + "Noto Sans CJK JP", + "IPAGothic", "Arial", "Liberation Sans", "Bitstream Vera Sans", From 6d29c0ef0526c64fe05139640610fa089f640b00 Mon Sep 17 00:00:00 2001 From: wakaharu999 Date: Wed, 10 Jun 2026 22:00:22 +0900 Subject: [PATCH 2/3] add jm --- pyproject.toml | 1 + src/data_profiling/__init__.py | 1 + src/data_profiling/visualisation/context.py | 1 + 3 files changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index b17954c96..a305181c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,7 @@ dependencies = [ "scipy>=1.8, <1.17", "pandas>1.5, <3.0, !=1.4.0", "matplotlib>=3.5, <=3.10", + "japanize-matplotlib", "pydantic>=2, <3", "PyYAML>=6.0.3, <6.1", "jinja2>=3.1.6, <3.2", diff --git a/src/data_profiling/__init__.py b/src/data_profiling/__init__.py index e5e2886d4..58e99f895 100644 --- a/src/data_profiling/__init__.py +++ b/src/data_profiling/__init__.py @@ -4,6 +4,7 @@ """ # ignore numba warnings import warnings # isort:skip # noqa +import japanize_matplotlib import importlib.util # isort:skip # noqa from warnings import warn diff --git a/src/data_profiling/visualisation/context.py b/src/data_profiling/visualisation/context.py index fde43c993..6602700f5 100644 --- a/src/data_profiling/visualisation/context.py +++ b/src/data_profiling/visualisation/context.py @@ -37,6 +37,7 @@ def manage_matplotlib_context() -> Any: "image.cmap": "Greys", "font.family": ["sans-serif"], "font.sans-serif": [ + "IPAexGothic", "Meiryo", "Hiragino Sans", "Hiragino Kaku Gothic ProN", From 55241ce3893977541bddea1512e639fc9e6cdad5 Mon Sep 17 00:00:00 2001 From: wakaharu999 Date: Sat, 13 Jun 2026 18:46:18 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data_profiling/visualisation/context.py | 2 +- src/data_profiling/visualisation/plot.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/data_profiling/visualisation/context.py b/src/data_profiling/visualisation/context.py index 6602700f5..66fee344c 100644 --- a/src/data_profiling/visualisation/context.py +++ b/src/data_profiling/visualisation/context.py @@ -81,8 +81,8 @@ def manage_matplotlib_context() -> Any: try: register_matplotlib_converters() - matplotlib.rcParams.update(customRcParams) sns.set_style(style="white") + matplotlib.rcParams.update(customRcParams) yield finally: deregister_matplotlib_converters() # revert to original unit registries diff --git a/src/data_profiling/visualisation/plot.py b/src/data_profiling/visualisation/plot.py index 6f90977e9..2c5c90b84 100644 --- a/src/data_profiling/visualisation/plot.py +++ b/src/data_profiling/visualisation/plot.py @@ -10,6 +10,7 @@ from matplotlib.collections import PolyCollection from matplotlib.colors import Colormap, LinearSegmentedColormap, ListedColormap, rgb2hex from matplotlib.dates import AutoDateLocator, ConciseDateFormatter +from matplotlib.font_manager import findfont, FontProperties from matplotlib.patches import Patch from matplotlib.ticker import FuncFormatter, MaxNLocator from statsmodels.graphics.tsaplots import plot_acf, plot_pacf @@ -22,6 +23,15 @@ from data_profiling.visualisation.utils import plot_360_n0sc0pe +def _resolve_font_path() -> Optional[str]: + """Return the file path of the current matplotlib sans-serif font.""" + try: + fp = FontProperties() + return findfont(fp) + except Exception: + return None + + def format_fn(tick_val: int, tick_pos: Any) -> str: return convert_timestamp_to_datetime(tick_val).strftime("%Y-%m-%d %H:%M:%S") @@ -36,8 +46,9 @@ def _plot_word_cloud( plot = plt.figure(figsize=figsize) for i, series_data in enumerate(series): word_dict = series_data.to_dict() + font_path = config.plot.font_path or _resolve_font_path() wordcloud = WordCloud( - font_path=config.plot.font_path, + font_path=font_path, background_color="white", random_state=123, width=300,