[英]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.