Есть ли способ сделать этот код короче? стволовые участки - PullRequest
2 голосов
/ 05 ноября 2019

Переменные оси 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 Ответ

1 голос
/ 05 ноября 2019

Вы можете сделать что-то вроде этого.

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)
...