Python 中的 matplotlib.artist.artist.update_from()
原文:https://www.geeksforgeeks.org/matplotlib-artist-artist-update_from-in-python/
Matplotlib 是 Python 中的一个库,是 NumPy 库的数值-数学扩展。艺术家类包含抽象基类,用于渲染到图形画布中的对象。图形中所有可见的元素都是艺术家的子类。
matplotlib.artist.artist.update_from()方法
matplotlib 库的 artist 模块中的 update_from()方法用于将属性从他人复制到自己。
语法: Artist.update_from(self,other)
参数:该方法接受以下参数。
- 其他:该参数是需要更新的属性。
返回:此方法返回艺术家所有属性的字典。
下面的例子说明了 matplotlib 中的 matplotlib.artist.update_from()函数:
例 1:
# Implementation of matplotlib function
from matplotlib.artist import Artist
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.legend_handler import HandlerLine2D
x = np.linspace(0, 3 * np.pi)
y1 = np.sin(x)
y2 = np.cos(x)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y1, c ='b', label ='y1', linewidth = 1.0)
ax.plot(x, y2, c ='g', label ='y2')
linewidth = 7
def update(prop1, prop2):
Artist.update_from(prop1, prop2)
prop1.set_linewidth(7)
plt.legend(handler_map ={plt.Line2D : HandlerLine2D(update_func = update)})
fig.suptitle('matplotlib.artist.Artist.update()\
function Example', fontweight ="bold")
plt.show()
输出:
例 2:
# Implementation of matplotlib function
from matplotlib.artist import Artist
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms
fig, ax = plt.subplots()
l1, = ax.plot([0.1, 0.5, 0.9],
[0.1, 0.9, 0.5],
"bo-")
l2, = ax.plot([0.1, 0.5, 0.9],
[0.5, 0.2, 0.7],
"ro-")
for l in [l1, l2]:
xx = l.get_xdata()
yy = l.get_ydata()
shadow, = ax.plot(xx, yy)
Artist.update_from(shadow, l)
ot = mtransforms.offset_copy(l.get_transform(),
ax.figure,
x = 4.0,
y =-6.0,
units ='points')
shadow.set_transform(ot)
fig.suptitle('matplotlib.artist.Artist.update_from()\
function Example', fontweight ="bold")
plt.show()
输出: