有什么办法可以使这段代码更短?干亚图

时间:2019-11-05 10:13:34

标签: python matplotlib plot data-visualization subplot

干图中的

x和y轴变量是DataFrames中的列


import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots(3, 1,figsize=(8,20))
fig.suptitle('Magnitude-Time Plot : R1')
fig.subplots_adjust(hspace=0.5)

# Defining custom 'xlim' and 'ylim' values.
xlim = (1990, 2005)
ylim = (0, 9)

# Setting the values for all axes.
plt.setp(ax, xlim=xlim, ylim=ylim)

    # plot with no marker

#subplot(311) : Catalog8 in R1
markerline, stemlines, baseline = ax[0].stem(cata8q1.YearDeci,cata8q1.Magnitude, markerfmt=' ',use_line_collection=True,linefmt='b')
plt.setp(stemlines,linewidth=0.5)
ax[0].set_title('Catalog OLD')

#subplot(312) : catalog 9 _Uniq in R1
markerline, stemlines, baseline = ax[1].stem(cata9uniq1.YearDeci,cata9uniq1.Magnitude, markerfmt=' ',use_line_collection=True,linefmt='r')
plt.setp(stemlines,linewidth=0.5)
ax[1].set_title('Unique events in NEW CATALOG')

#subplot(312) : Catalog NEW in R1
markerline, stemlines, baseline = ax[2].stem(catanewq1.YearDeci,catanewq1.Magnitude, markerfmt=' ',use_line_collection=True)
plt.setp(stemlines,linewidth=0.5)
ax[2].set_title('OLD + unique events in NEW Catalog')

plt.show()

我试图绘制[3,1]茎子图,我想用更少的代码行数来更方便地控制轴属性和图形属性

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作。

catalogs = [(cata8q1,"Catalog Old", "b"), ...] 

for i, (catalog, title, linefmt) in enumerate (catalogs):
    markerline, stemlines, baseline = ax[0].stem(catalog.YearDeci,catalog.Magnitude, markerfmt=' ',use_line_collection=True,linefmt=linefmt)   
     plt.setp(stemlines,linewidth=0.5) 
     ax[i].set_title(title)