Я работаю над анализом данных в python и экспортирую их в Excel, поэтому я использовал библиотеку xlwt
в одном файле, а другой файл использовал xlsxwriter
. Однако при использовании функции workbook.write()
с xlsxwriter
для присвоения значений Excel я получил эту странную ошибку. Несмотря на то, что я отсканировал Inte rnet и прогуглил эту ошибку и правильно написал код, я все равно не смог найти решение этой ошибки. Кроме того, я хотел бы построить кривые в Excel (точечная диаграмма) и не смог построить кривые.
Кто-нибудь может мне помочь исправить эту ошибку и как построить график в Excel из * 1020? *? Я также установил библиотеку openpyxl
.
Я использую Pycharm в качестве редактора для Python 3.7, это мой код:
import cv2
import numpy as np
from skimage.feature import peak_local_max
from skimage.morphology import watershed
from scipy import ndimage
import math
import random as rand
import matplotlib.pyplot as plt
import pandas as pd
import xlsxwriter
# import openpyxl module
import openpyxl
from openpyxl.chart import ScatterChart, Reference, Series
workbook = xlsxwriter.Workbook('image_analysis.xlsx')
worksheet = workbook.add_worksheet()
image = cv2.imread('D:\My work\MASTERS WORK\Sample H 4 1 2020\Sample H1\SampleH1_#2_72pxfor1cm_out.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV+ cv2.THRESH_OTSU)[1]
thresh=thresh/255
cv2.imshow('thresh',thresh)
cv2.waitKey(0)
h,w =image.shape[:2]
print('The dimensions of the image =',h,w)
# Compute Euclidean distance from every binary pixel
# to the nearest zero pixel then find peaks
distance_map = ndimage.distance_transform_edt(thresh)
local_max = peak_local_max(distance_map, indices=False, min_distance=20, labels=thresh)
# Perform connected component analysis then apply Watershed
markers = ndimage.label(local_max, structure=np.ones((3, 3)))[0]
labels = watershed(-distance_map, markers, mask=thresh)
# Iterate through unique labels
n = 0
Areas = []
row = 2
col = 0
gamma = 2.6
W =[]
style = workbook.add_format({'bold': True, 'font_color': 'red'})
workbook.write(0,col, "AREA",style)
workbook.write(0,col+1, "Raduis",style)
workbook.write(0,col+2, "Volume",style)
workbook.write(0,col+3, "Weight",style)
workbook.write(0,col+4 , "Raduis(cm)",style)
workbook.write(0,col+5 , "Weight(gm)",style)
workbook.write(0,col+6 , "Sorted raduis",style)
workbook.write(0,col+7 , "Sorted weight",style)
workbook.write(0,col+8, "Cumulative weight",style)
workbook.write(0,col+9, "% passing",style)
workbook.write(0,col+10, "Diameter (mm)",style)
raduis=[]
for item in Areas:
r = ((item/math.pi)**0.5) # raduis is in cm units
raduis.append(r)
v = (4/3)*math.pi*r**3 # volume in cubic cm units and considered as sphere
w = gamma*v # weight is in gram units
workbook.write(row, col, item)
workbook.write(row, col + 1, r)
workbook.write(row, col + 2, v)
workbook.write(row, col + 3, w)
row += 1
r=2
s=[]
for k in raduis:
r2 = k/scale
s.append(r2)
workbook.write(r, col + 4, r2)
weight = (4/3)*3.141592*2.6*r2**3
workbook.write(r, col + 5, weight)
W.append(weight)
r+=1
Но я получил эту ошибку:
Файл "D: / Моя работа / Мои изображения / Watershed_seg.py", строка 94, в файле workbook.write (0, столбец, "ОБЛАСТЬ", стиль) AttributeError: «Объект рабочей книги не имеет атрибута» напишите '