python - Python:如何使用类来绘制不同的线?
问题描述
我想使用类方法绘制不同的线。为了绘制一条线。类似于Passing plots out of a class我使用这个类来绘制一条线
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
class Plotter(object):
def __init__(self, xval=None, yval=None, dim1=None, dim2=None):
self.xval = xval
self.yval = yval
self.dim1 = dim1
self.dim2 = dim2
def plotthing(self):
fig, ax = plt.subplots(figsize=(self.dim1,self.dim2))
ax.plot(self.xval, self.yval, 'o-')
return fig
app = Plotter(xval=range(0,10), yval=range(0,10), dim1=5, dim2=5)
plot = app.plotthing()
但是我想在同一个图中绘制不同的曲线并在类中定义一个函数来做到这一点。
Xval = []
Yval = []
xval=range(0,10)
yval=range(0,10)
Xval.append(xval)
Yval.append(yval)
xval=range(0,10)
yval=np.sin(range(0,10))
Xval.append(xval)
Yval.append(yval)
如何定义要传递给 plotthing 的函数?
class Plotter(object):
def __init__(self, xval=None, yval=None, dim1=None, dim2=None):
self.xval = xval
self.yval = yval
self.dim1 = dim1
self.dim2 = dim2
def function_do_plot(x, y):
do something
def plotthing(self):
fig, ax = plt.subplots(figsize=(self.dim1,self.dim2))
for i in range(0, len(self.xval)):
x = xval[i]
y = yval[i]
fig = function_do_plot(x, y)
return fig
解决方案
考虑在不需要单独的方法的情况下遍历输入列表:
class Plotter(object):
def __init__(self, xval=None, yval=None, dim1=None, dim2=None):
self.xval = xval # LIST
self.yval = yval # LIST
self.dim1 = dim1
self.dim2 = dim2
def plotthing(self):
fig, ax = plt.subplots(figsize=(self.dim1,self.dim2))
for i, j in zip(self.xval, self.yval):
ax.plot(i, j, 'o-')
return fig
# POPULATE LIST OF RANGES
Xval = []; Yval = []
xval = range(0,10)
yval = range(0,10)
Xval.append(xval)
Yval.append(yval)
xval = range(0,10)
yval = np.sin(range(0,10))
Xval.append(xval)
Yval.append(yval)
# PASS IN LIST OF RANGES
app = Plotter(xval=Xval, yval=Yval, dim1=5, dim2=5)
plot = app.plotthing()
推荐阅读
- r - 并行计算,在 dplyr 中哪个替代 tidyr::complete?
- c - 为什么 C 允许从 const 隐式转换为非常量指针
- reactjs - 将 React 表单与数据库连接起来
- amazon-web-services - 如何在 aws codebuild 中访问多级存储库
- google-chrome-extension - 使用 CJS chrome 扩展时,jQuery text() 函数在 Twitter 上不起作用
- testing - django rest框架测试代码self.client.delete问题
- php - Why pagination shows all the records of the table on every page?
- c# - 如何使用 SpotifyAPI-NET 获取当前正在播放的歌曲
- python - 为什么我会在按钮按下事件中获得鼠标位置的小数值?
- c# - 如何在 api 调用列表中加快或提高效率?