在参数中不使用“:”的gridspec?
gridspec without using ":" in Parameter?
我的问题很简单:我不能在最后一个参数中做一个“:”
图(strecke,strecke2,"Strecke in Metern/s","S(t) Diagramm",0,:)
因为它告诉我:“<”在 'str' 和 'int' 的实例之间不受支持
但是我想在两列上都有这个图表,那么我可以在两列上做些什么呢?
Link 文件:https://filehorst.de/download.php?file=ceCnteJq
import codecs
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches # wird nicht benutzt, test
import numpy as np
import matplotlib.gridspec as grid
zeit = []
strecke = []
geschwindigkeit = []
beschleunigung = []
strecke2 = []
geschwindigkeit2 = []
beschleunigung2 = []
gs = grid.GridSpec(2, 2)
fig = plt.figure('Diagramme', tight_layout=True)
daten = open("BewegungBeschleunigung.csv")
reiheÜberspringen = True
for i in daten:
if reiheÜberspringen == True:
reiheÜberspringen = False
continue
i = i.strip().split(",")
zeit.append(float(i[0]))
strecke.append(float(i[1]))
geschwindigkeit.append(float(i[2]))
beschleunigung.append(float(i[3]))
strecke2.append(float(i[4]))
geschwindigkeit2.append(float(i[5]))
beschleunigung2.append(float(i[6]))
def diagram(y, y2, yachse, titel, pos1, pos2):
ax = fig.add_subplot(gs[pos1, pos2])
ax.plot(zeit, y, "go", markersize = 2.5)
ax.plot(zeit, y2, "ro", markersize = 2.5)
ax.autoscale(enable = False, axis = "both", tight = None)
ax.grid(True)
ax.set_title(titel)
plt.gcf().canvas.set_window_title("Diagramme")
diagram(strecke, strecke2, "Strecke in Metern/s", "S(t) Diagramm", 0, :)
diagram(geschwindigkeit, geschwindigkeit2, "Geschwindigkeit in Metern/s", "V(t) Diagramm", 1, 0)
diagram(beschleunigung, beschleunigung2, "Beschleunigung in Metern/s^2", "a(t) Diagramm", 1, 1 )
plt.show()
daten.close
您可以在函数中放置一个 if
条件。您可以将 pos2
的默认值设置为 None
。因此,如果您想要 :
,则在调用 diagram
时不要传递任何值。然后检查函数内部,是否为 pos2
传递了任何值。如果不是,则使用 :
否则使用传递的值。
下面是修改后的函数。我没有你的数据,但它会工作。
def diagram(y, y2, yachse, titel, pos1, pos2=None):
if not pos2:
ax = fig.add_subplot(gs[pos1, :])
else:
ax = fig.add_subplot(gs[pos1, pos2])
ax.plot(zeit, y, "go", markersize = 2.5)
ax.plot(zeit, y2, "ro", markersize = 2.5)
ax.autoscale(enable = False, axis = "both", tight = None)
ax.grid(True)
ax.set_title(titel)
plt.gcf().canvas.set_window_title("Diagramme")
diagram(strecke, strecke2, "Strecke in Metern/s", "S(t) Diagramm", 0) # <-- No pos2
diagram(geschwindigkeit, geschwindigkeit2, "Geschwindigkeit in Metern/s", "V(t) Diagramm", 1, 0)
diagram(beschleunigung, beschleunigung2, "Beschleunigung in Metern/s^2", "a(t) Diagramm", 1, 1 )
plt.show()
Numpy 提供了一种通过 numpy.s_
生成索引表达式的方法。您可以将其用作
np.s_[:]
将完整的切片传递给函数。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(2, 2)
fig = plt.figure('Diagramme', tight_layout=True)
data = np.loadtxt("data/BewegungBeschleunigung.csv", skiprows=1, delimiter=",", unpack=True)
(zeit, strecke, geschwindigkeit, beschleunigung,
strecke2, geschwindigkeit2, beschleunigung2) = data
def diagram(y, y2, yachse, titel, pos1, pos2):
ax = fig.add_subplot(gs[pos1, pos2])
ax.plot(zeit, y, "go", markersize = 2.5)
ax.plot(zeit, y2, "ro", markersize = 2.5)
ax.autoscale(enable = False, axis = "both", tight = None)
ax.grid(True)
ax.set_title(titel)
plt.gcf().canvas.set_window_title("Diagramme")
diagram(strecke, strecke2, "Strecke", "S(t) Diagramm", 0, np.s_[:])
diagram(geschwindigkeit, geschwindigkeit2, "Geschwindigkeit", "V(t) Diagramm", 1, 0)
diagram(beschleunigung, beschleunigung2, "Beschleunigung", "a(t) Diagramm", 1, 1 )
plt.show()
我的问题很简单:我不能在最后一个参数中做一个“:” 图(strecke,strecke2,"Strecke in Metern/s","S(t) Diagramm",0,:) 因为它告诉我:“<”在 'str' 和 'int' 的实例之间不受支持 但是我想在两列上都有这个图表,那么我可以在两列上做些什么呢?
Link 文件:https://filehorst.de/download.php?file=ceCnteJq
import codecs
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches # wird nicht benutzt, test
import numpy as np
import matplotlib.gridspec as grid
zeit = []
strecke = []
geschwindigkeit = []
beschleunigung = []
strecke2 = []
geschwindigkeit2 = []
beschleunigung2 = []
gs = grid.GridSpec(2, 2)
fig = plt.figure('Diagramme', tight_layout=True)
daten = open("BewegungBeschleunigung.csv")
reiheÜberspringen = True
for i in daten:
if reiheÜberspringen == True:
reiheÜberspringen = False
continue
i = i.strip().split(",")
zeit.append(float(i[0]))
strecke.append(float(i[1]))
geschwindigkeit.append(float(i[2]))
beschleunigung.append(float(i[3]))
strecke2.append(float(i[4]))
geschwindigkeit2.append(float(i[5]))
beschleunigung2.append(float(i[6]))
def diagram(y, y2, yachse, titel, pos1, pos2):
ax = fig.add_subplot(gs[pos1, pos2])
ax.plot(zeit, y, "go", markersize = 2.5)
ax.plot(zeit, y2, "ro", markersize = 2.5)
ax.autoscale(enable = False, axis = "both", tight = None)
ax.grid(True)
ax.set_title(titel)
plt.gcf().canvas.set_window_title("Diagramme")
diagram(strecke, strecke2, "Strecke in Metern/s", "S(t) Diagramm", 0, :)
diagram(geschwindigkeit, geschwindigkeit2, "Geschwindigkeit in Metern/s", "V(t) Diagramm", 1, 0)
diagram(beschleunigung, beschleunigung2, "Beschleunigung in Metern/s^2", "a(t) Diagramm", 1, 1 )
plt.show()
daten.close
您可以在函数中放置一个 if
条件。您可以将 pos2
的默认值设置为 None
。因此,如果您想要 :
,则在调用 diagram
时不要传递任何值。然后检查函数内部,是否为 pos2
传递了任何值。如果不是,则使用 :
否则使用传递的值。
下面是修改后的函数。我没有你的数据,但它会工作。
def diagram(y, y2, yachse, titel, pos1, pos2=None):
if not pos2:
ax = fig.add_subplot(gs[pos1, :])
else:
ax = fig.add_subplot(gs[pos1, pos2])
ax.plot(zeit, y, "go", markersize = 2.5)
ax.plot(zeit, y2, "ro", markersize = 2.5)
ax.autoscale(enable = False, axis = "both", tight = None)
ax.grid(True)
ax.set_title(titel)
plt.gcf().canvas.set_window_title("Diagramme")
diagram(strecke, strecke2, "Strecke in Metern/s", "S(t) Diagramm", 0) # <-- No pos2
diagram(geschwindigkeit, geschwindigkeit2, "Geschwindigkeit in Metern/s", "V(t) Diagramm", 1, 0)
diagram(beschleunigung, beschleunigung2, "Beschleunigung in Metern/s^2", "a(t) Diagramm", 1, 1 )
plt.show()
Numpy 提供了一种通过 numpy.s_
生成索引表达式的方法。您可以将其用作
np.s_[:]
将完整的切片传递给函数。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(2, 2)
fig = plt.figure('Diagramme', tight_layout=True)
data = np.loadtxt("data/BewegungBeschleunigung.csv", skiprows=1, delimiter=",", unpack=True)
(zeit, strecke, geschwindigkeit, beschleunigung,
strecke2, geschwindigkeit2, beschleunigung2) = data
def diagram(y, y2, yachse, titel, pos1, pos2):
ax = fig.add_subplot(gs[pos1, pos2])
ax.plot(zeit, y, "go", markersize = 2.5)
ax.plot(zeit, y2, "ro", markersize = 2.5)
ax.autoscale(enable = False, axis = "both", tight = None)
ax.grid(True)
ax.set_title(titel)
plt.gcf().canvas.set_window_title("Diagramme")
diagram(strecke, strecke2, "Strecke", "S(t) Diagramm", 0, np.s_[:])
diagram(geschwindigkeit, geschwindigkeit2, "Geschwindigkeit", "V(t) Diagramm", 1, 0)
diagram(beschleunigung, beschleunigung2, "Beschleunigung", "a(t) Diagramm", 1, 1 )
plt.show()