Мне нужно создать итоговую диаграмму одного параметра для каждой записи в моей базе данных. Используя приведенный ниже код, мне удалось создать подзадачу для каждой записи (5 в тестовой базе данных, базе геоданных ArcGIS 10.0, Python 2.6.5, Matplotlib 1.0.0), но каждый подзаголовок идентичен. В моей попытке идентифицировать правильный синтаксис я искал в форумах примеры итоговых графиков/отчетов, синтаксиса подзаголовков и циклов. Я ожидаю, что моя проблема не соответствует синтаксису цикла, так как я рисую все записи на сюжет, а не желаемую запись за каждый сюжет. После того, как я разрешу эти основные проблемы с построением, я планирую расширить сферу моего кода, чтобы включить 10-15 параметров на каждый сюжет, всего 3-4 сюжета и некоторую общую итоговую информацию, всего на одной странице pdf на запись. Я работаю с несколькими тысячами записей.matplotlib summary plot per record
Это мое первое сообщение о переполнении стека. Этот форум был чрезвычайно полезным для меня ресурсом в течение последнего года. Я новичок в python и совершенно новый для использования matplotlib, но я вижу огромный потенциал языка и этой библиотеки. Любая помощь или предложения очень ценятся!
import arcpy
import os
import matplotlib
import matplotlib.pyplot as plt
#Variables
FC = arcpy.GetParameterAsText(0) #feature class
P1_fld = arcpy.GetParameterAsText(1) #score field to chart
P2_fld = arcpy.GetParameterAsText(2) #score field to chart
plt.subplots_adjust(hspace=0.4)
nsubp = int(arcpy.GetCount_management(FC).getOutput(0)) #pulls n subplots from FC
last_val = object()
#Sub-plot loop
cur = arcpy.SearchCursor(FC, "", "", P1_fld)
for row in cur:
x=1
y=row.getValue(P1_fld)
if row.OBJECTID != last_val:
for i,v in enumerate(xrange(nsubp)):
v = v+1
i = i+1
ax = plt.subplot(nsubp,1,v) # Create a subplot.
ax.scatter(x,y,s=5,color='blue'); # Generate the Scatter Plot.
oid = str(row.getValue('OBJECTID'))
figPDf = r"filepath.pdf" # Save the Scatter Plot to PDF.
plt.savefig(figPDf)
del row, cur
os.startfile("filepath.pdf")
Объединение для I, V в Перечислять (xrange (nsubp)): с V = + 1 и я = я + 1 кажется, что проблемы – doctorlove
Это происходит потому, что вы используете двойной 'for' цикл: вы строят все параметры для каждой итерации (т. е. для каждого подзаголовка). – hooy