我想知道是否可以将绘图特征从一个图形复制到另一个图形。这里是一个例子:
您具有使用“ A”类的方法绘制的第一个图,其中绘制了曲线,并定义了xlim和网格:
class A:
def __init__(self):
self.plot()
def plot(self):
test1=[[1.11,1.12,1.13,1.14,1.12,1.13,1.14,1.15], [1,1,1,1, 5,5,5,5], [0,11,20,30,0,11,20,30]]
self.data=pd.DataFrame(test1).T
ax = plt.gca()
self.data.plot(ax=ax)
ax.set_xlim(0, 40)
n_x,n_y=11,8.5
ax.set_aspect( ax.get_xlim()[1]/ax.get_ylim()[1] * n_y/n_x )
# Customize the major grid
ax.grid(which='major', linestyle='-', linewidth='1.1', color='black')
# Customize the minor grid
ax.grid(which='minor', linestyle=':', linewidth='0.5', color='black')
然后在另一个文件上有另一个类“ B”:
class B:
def __init__(self):
self.plot()
def plot(self):
test2=[[2.55,6.55,0.33], [1.2,2.2,2.3]]
self.data=pd.DataFrame(test2).T
self.data.plot()
如果我叫A类,是否可以复制网格和xlim而无需在B类中再次进行?就像创建一个包含所有这些特征的变量一样?
例如,我可以定义那些xlim和grid而不在A类中绘图而仅在B类中绘图吗?确实,类B在GUI文件中,我在其中与Tkinter进行了接口,我想从其中的另一个文件中绘制曲线。
希望我的回答有点清楚^^谢谢:)
答案 0 :(得分:0)
您可能宁愿创建一个可以接收不同数据的单一类。
import matplotlib.pyplot as plt
import pandas as pd
class Base():
def __init__(self, data):
self.data = pd.DataFrame(test1).T
def plot(self, ax=None):
ax = ax or plt.gca()
self.data.plot(ax=ax)
ax.set_xlim(0, 10)
n_x,n_y=11,8.5
ax.set_aspect( ax.get_xlim()[1]/ax.get_ylim()[1] * n_y/n_x )
ax.grid(which='major', linestyle='-', linewidth='1.1', color='black')
ax.grid(which='minor', linestyle=':', linewidth='0.5', color='black')
test1=[[1.11,1.12,1.13,1.14,1.12,1.13,1.14,1.15], [1,1,1,1, 5,5,5,5], [0,11,20,30,0,11,20,30]]
test2=[[2.55,6.55,0.33], [1.2,2.2,2.3]]
b1 = Base(test1)
b2 = Base(test2)
b1.plot()
b2.plot()
plt.show()