Matplotlib 中带换行的文本框
Matplotlib 是一个主要用于可视化(静态、动画、创意和交互)的Python综合库。它 提供了多种通过文本注释和描述情节的方法。此外,它可以自动换行文本。
文本在情节中用于各种目的 除了描述情节外,文本的另一个用途是提供一般注释和读者的注意力。 Matplotlib 提供了向绘图添加文本的方法。
方法
- 导入模块
- 创建数据
- 绘图数据
- 添加文字
- 显示图
- text() :此方法为图形提供一般文本。它将文本添加到任意位置。
句法 :
matplotlib.pyplot.text(x, y, string, fontdict, withdash, **kwargs)
例子 :
Python3
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
# Text on Ferrari line plot
plt.text(2.5, 23, "Ferrari")
# Text on BMW line plot
plt.text(2.5, 43, "BMW")
plt.legend()
Python3
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
plt.figtext(0.4, 0.2, "Ferrari")
plt.figtext(0.35, 0.4, "BMW")
plt.legend()
Python3
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
# Text on Ferrari line plot
plt.annotate('BMW', xy=(2.5, 40), xytext=(3, 55), arrowprops=dict(
width=1, headwidth=8, facecolor='black', shrink=0.05))
plt.legend()
Python3
import matplotlib.pyplot as plt
fig = plt.figure()
plt.axis([0, 10, 0, 10])
t = ("Welcome to GeeksforGeeks")
plt.text(5, 8, t, fontsize=18, style='oblique', ha='center',
va='top', wrap=True)
plt.show()
Python3
import matplotlib.pyplot as plt
fig = plt.figure()
plt.axis([0, 10, 0, 10])
t = ("Welcome to GeeksforGeeks")
plt.text(5, 8, t, fontsize=18, rotation=15, style='oblique', ha='center',
va='top', wrap=True) # rotate the text 15 degree.
plt.show()
输出 :
- figtext() : figtext()可以用作text()方法的替代方法。 figtext()有助于将文本放置在图形的任何位置。我们还可以将文本放在图的轴之外。
句法 :
matplotlib.pyplot.figtext(x, y, string, fontdict=None, **kwargs)
例子 :
蟒蛇3
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
plt.figtext(0.4, 0.2, "Ferrari")
plt.figtext(0.35, 0.4, "BMW")
plt.legend()
输出 :
- annotation():借助这些方法,我们可以通过添加箭头来注释图上的一个点。
句法 :
matplotlib.pyplot.annotate( string, xy, xytext, arrowprops, **kwargs)
示例 1:
蟒蛇3
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [50, 40, 40, 80, 20]
y2 = [80, 20, 20, 50, 60]
plt.plot(x, y, 'g', label='BMW', linewidth=5)
plt.plot(x, y2, 'c', label='Ferrari', linewidth=5)
plt.title('Car details in line plot')
plt.ylabel('Distance in kms')
plt.xlabel('Days')
# Text on Ferrari line plot
plt.annotate('BMW', xy=(2.5, 40), xytext=(3, 55), arrowprops=dict(
width=1, headwidth=8, facecolor='black', shrink=0.05))
plt.legend()
输出 :
示例 2:使用 pyplot.text() 换行的文本框:
蟒蛇3
import matplotlib.pyplot as plt
fig = plt.figure()
plt.axis([0, 10, 0, 10])
t = ("Welcome to GeeksforGeeks")
plt.text(5, 8, t, fontsize=18, style='oblique', ha='center',
va='top', wrap=True)
plt.show()
输出 :
我们可以使用旋转参数来旋转文本。
示例 3:
蟒蛇3
import matplotlib.pyplot as plt
fig = plt.figure()
plt.axis([0, 10, 0, 10])
t = ("Welcome to GeeksforGeeks")
plt.text(5, 8, t, fontsize=18, rotation=15, style='oblique', ha='center',
va='top', wrap=True) # rotate the text 15 degree.
plt.show()
输出 :