Python 使用matplotlib在单独的子地块中绘制熊猫系列
希望得到一些帮助,我正在尝试使用pandas和matplotlib在单独的子地块中绘制模拟数据。到目前为止,我的代码是:Python 使用matplotlib在单独的子地块中绘制熊猫系列,python,matplotlib,pandas,plot,subplot,Python,Matplotlib,Pandas,Plot,Subplot,希望得到一些帮助,我正在尝试使用pandas和matplotlib在单独的子地块中绘制模拟数据。到目前为止,我的代码是: import matplotlib.pylab as plt import pandas as pd fig, ax = plt.subplots(2, 3) for i in range(2): for j in range(50, 101, 10): for e in range(3): Var=(700* j)/ 100
import matplotlib.pylab as plt
import pandas as pd
fig, ax = plt.subplots(2, 3)
for i in range(2):
for j in range(50, 101, 10):
for e in range(3):
Var=(700* j)/ 100
Names1 = ['ig','M_GZ']
Data1 = pd.read_csv('~/File/JTL_'+str(Var)+'/GZ.csv', names=Names1)
ig = Data1['ig']
M_GZ=Data1['M_GZ']
MGZ = Data1[Data1.M_GZ != 0]
ax[i, e].plot(MGZ['ig'][:4], MGZ['M_GZ'][:4], '--v', linewidth=1.75)
plt.tight_layout()
plt.show()
但代码给了我6份相同绘图的副本:
我尝试改变循环并使用不同的变体,例如:
fig = plt.figure()
for i in range(1, 7):
ax = fig.add_subplot(2, 3, i)
for j in range(50, 101, 10):
Var=(700* j)/ 100
Names1 = ['ig','M_GZ']
Data1 = pd.read_csv('~/File/JTL_'+str(Var)+'/GZ.csv', names=Names1)
ig = Data1['ig']
M_GZ=Data1['M_GZ']
MGZ = Data1[Data1.M_GZ != 0]
ax.plot(MGZ['ig'][:4], MGZ['M_GZ'][:4], '--v', linewidth=1.75)
plt.tight_layout()
plt.show()
但这并没有改变什么,我还是得到了和上面一样的情节。任何帮助都将不胜感激,我希望每个子批次包含一组数据,而不是全部六组数据
这是一个数据帧,每个子目录
~/File/JTL_'+str(Var)+'/
包含此文件的副本共有6个问题在您的循环中
for i in range(2): # Iterating rows of the plot
for j in range(50, 101, 10): # Iterating your file names
for e in range(3): # iterating the columns of the plot
最终结果是迭代每个文件名的所有列
对于这两个工作,循环中应该只有两个嵌套级别。潜在代码(已更新)):
您能显示什么数据1(数据帧)吗看起来像?@user3645626我添加了一个链接到一个示例,说明其中一个数据帧的外观是否足够,或者您认为所有6个数据帧都会更有用?我尝试了您的建议,但我一直得到
索引器:索引3不适用于轴1,大小为3
,但是当我将行fig,ax
更改为fig,ax=plt.子图(2,6)
生成一个图,其中顶行与底行完全相同,当添加打印行时,列
,我得到0,0,1 0,2 0,3
相反,循环应该给出0,0,1 0,2 1,0 1,1,2
哈哈,对不起,我读得太快了,出于某种原因,我认为只有3个文件。看看更新后的代码。
import matplotlib.pylab as plt
import pandas as pd
fig, ax = plt.subplots(2, 3)
for row in range(2):
for col in range(3):
f_index = range(50, 101, 10)[row+1 * col]
print row, col, f_index
Var=(700* f_index)/ 100
Names1 = ['ig','M_GZ']
Data1 = pd.read_csv('~/File/JTL_'+str(Var)+'/GZ.csv', names=Names1)
ig = Data1['ig']
M_GZ=Data1['M_GZ']
MGZ = Data1[Data1.M_GZ != 0]
ax[row, col].plot(MGZ['ig'][:4], MGZ['M_GZ'][:4], '--v',linewidth=1.75)
plt.tight_layout()
plt.show()