【问题标题】:python plot several figurespython绘制几个数字
【发布时间】:2018-08-28 07:53:12
【问题描述】:

我有 50 个 csv 文件。我使用“for循环”来获取数据框。现在我想分别绘制这 50 个数字。 1 个地块中有 6 个子地块。我怎样才能得到这个?非常感谢。

path = 'E:/XXXX/'
files = os.listdir(path)
files_csv = list(filter(lambda x: x[-4:]=='.csv' , files))
for file1 in  files_csv:
    tmp1=pd.read_csv(path + file1)

我的数据如下:

df = pd.DataFrame({'date': [20121231,20130102, 20130105, 20130106, 20130107, 20130108],'price': [25, 163, 235, 36, 40, 82]})

【问题讨论】:

  • 请描述您的数据并解释为什么您期望 6 个子图。
  • 我发布我的数据。由于我需要绘制 50 个数字,如果我在一个图中选择 2 个子图。然后我会得到 25 个地块。
  • 您可以为每个文件提供 1 个图形,该文件中的多个数据位于每个图形的多个子图中,或者您可以将所有文件放在同一个图上的同一个图上...... 什么您需要不清楚,并且您似乎没有将数字与轴区分开来。

标签: python plot subplot


【解决方案1】:

您可以为每一帧创建一个图形并使用 matplotlib.pyplot.subplot 函数来绘制 6 个不同的图。用下面的例子帮助自己。希望这会有所帮助。

from math import pi
import numpy as np 
import matplotlib.pyplot as plt

x1 = np.linspace(-2*pi, 2*pi, 50)
y1 = np.cos(x1)
x2 = np.linspace(-pi, pi, 50)
y2 = np.cos(x2)


plt.figure()
plt.grid(True)
plt.title('your title ' )
plt.subplot(121)
plt.plot(x1, y1, 'r', label= 'y1 = cos(x1)')
plt.legend(loc=1)
plt.subplot(122)
plt.plot(x2, y2, 'b', label = 'y2 = cos(x2)')
plt.legend(loc=1)

plt.show() 

【讨论】:

    【解决方案2】:
    import matplotlib.pyplot as plt
    import numpy as np
    
    x1 = np.linspace(-1, 1, 50)
    
    howmanyrowsyouwant = 1 # how many times 6 subplots you want
    
    for x in range(howmanyrowsyouwant):
        _, ax = plt.subplots(nrows=1, ncols=6, figsize=(24,4))
        ax[0].set_title('title of first')
        ax[0].plot(x1) # plot for first subplot
        ax[1].set_title('title of second')
        ax[1].plot(x1) # plot for second subplot
        ax[2].set_title('title of third')
        ax[2].plot(x1) # plot for third subplot
        ax[3].set_title('title of fourth')
        ax[3].plot(x1) # plot for fourth subplot
        ax[4].set_title('title of fifth')
        ax[4].plot(x1) # plot for fifth subplot
        ax[5].set_title('title of sixth')
        ax[5].plot(x1) # plot for sixth subplot
    

    这会连续生成六个子图,次数与您指定的一样多。

    【讨论】:

      猜你喜欢
      • 2016-03-08
      • 2019-06-20
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2021-08-31
      • 1970-01-01
      • 2014-09-18
      相关资源
      最近更新 更多