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

干图中的

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,baseline = ax[1].stem(cata9uniq1.YearDeci,cata9uniq1.Magnitude,linefmt='r')
plt.setp(stemlines,linewidth=0.5)
ax[1].set_title('Unique events in NEW CATALOG')

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

plt.show()

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

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

您可以执行以下操作。

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)
本文链接:https://www.f2er.com/3160534.html

大家都在问