繁体   English   中英

Python Matplotlib:为子图添加水印

[英]Python Matplotlib: add watermark to subplots

我正在用matplotlib绘制一个图形,它是一个 2x2 图形。 我想为每个子图添加水印,我该怎么做? 我知道如何为整个图形添加水印,但我没能在单个子图中做到这一点。

这是我的代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Create dummy DataFrame
df = pd.DataFrame(np.array([[1, 2], [3, 4], [5, 6]]),
                   columns=['a', 'b'])

fig, axes2 = plt.subplots(nrows=2, ncols=2, figsize=(9, 9))

# unpack all the axes subplots
axes = axes2.ravel()

df.iloc[:, [0, 1]].plot(ax=axes[0], marker='o')
axes[0].set_title('Subplot 1')

df.iloc[:, [0, 1]].plot(ax=axes[1], marker='o')
axes[1].set_title('Subplot 2')

df.iloc[:, [0, 1]].plot(ax=axes[2], marker='o')
axes[2].set_title('Subplot 3')

df.iloc[:, [0, 1]].plot(ax=axes[3], marker='o')
axes[3].set_title('Subplot 4')

# Text Watermark
fig.text(0.7,0.3, 'Test watermark',
         fontsize=50, color='gray',
         ha='right', va='bottom', alpha=0.4,rotation=45)

plt.tight_layout()
plt.savefig('../test.png', dpi=300)
plt.show()

您可以将.text分配给每个axes ,如下所示。

尝试这个:

# Text Watermark
axes[0].text(1.0, 1.0,'Subplot 1 Test watermark', alpha=0.4,rotation=45)
axes[1].text(1.0, 1.0,'Subplot 2 Test watermark', alpha=0.4,rotation=45)
axes[2].text(1.0, 1.0,'Subplot 3 Test watermark', alpha=0.4,rotation=45)
axes[3].text(1.0, 1.0,'Subplot 4 Test watermark', alpha=0.4,rotation=45)

Output:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM