मैंने एक प्रोग्राम लिखा है जो डेटा एकत्र करता है और इसे (y) समय के साथ (x) प्लॉट करता है। मैं विंडोज 10 प्रो पर मैटप्लोटलिब 3.2.2 के साथ पायथन 3.7.7 का उपयोग करता हूं। मैंने pyinstaller का उपयोग करके प्रोग्राम को एक .exe में संकलित किया है और इसे चलाने के लिए अतिरिक्त कंप्यूटरों पर रखा है। विंडोज 7 और 10 चलाने वाले HP i5 को छोड़कर, प्रोग्राम ने सभी कंप्यूटरों पर ठीक से काम किया है। मैंने अपनी समस्या को समझाने में मदद करने के लिए दोनों ग्राफ़ की एक तस्वीर संलग्न की है ... अच्छा और बुरा समूह

खराब ग्राफ डेटा बिंदुओं के बीच लंबी क्षैतिज रेखाओं के साथ छिटपुट रूप से डेटा प्रदर्शित करता प्रतीत होता है। मैंने एक डीबग संस्करण बनाया है जो एक्स और वाई अक्ष के लिए उपयोग की जाने वाली सूचियों का डेटा प्रदर्शित करता है और सूचियां 80-110 मानों से भरी हुई हैं, इसलिए मुझे पता है कि डेटा एकत्र किया जा रहा है। यह सिर्फ ग्राफ पर ठीक से प्रदर्शित नहीं हो रहा है।

मैंने चीजों को अनइंस्टॉल करने और चीजों को स्थापित करने का प्रयास किया है, मैंने टास्क मैनेजर में प्राथमिकता को बदल दिया है, और मैंने पृष्ठभूमि में बाधा डालने वाले किसी भी एक्सटेंशन को अक्षम करने के लिए सेफ मोड में चलने का प्रयास किया है।

क्या किसी के पास कोई विचार या मदद है? आपका अग्रिम में ही बहुत धन्यवाद!

सांकेतिक टुकड़ा:

def Laser_WaferScan(self, lst, display1, time_lst):
""" Laser - WAFER SCAN PLOT """
waferScan = lst
rpms = display1                 # Displays the RPMs in plt.title
waferScan_fullScan_time_lst = time_lst


#### TESTING - Moved from main() 6.1.20
if gv.bandpass_yes == True:
    plt.subplot(3, 1, 1) 
else:
    plt.subplot(2, 1, 1)
##########################################

# Dynamically setup graph axes using Plotting class
waferScan_min_ylim, waferScan_max_ylim = self.Ylim(waferScan)
plt.ylim(waferScan_min_ylim, waferScan_max_ylim)
# Compare the last value added to the waferScan_fullScan_time_lst, and if it is greater than the current X-axis limit, make it the new X-axis limit
if waferScan_fullScan_time_lst[-1] > gv.waferScan_max_xlim: 
    gv.waferScan_max_xlim = waferScan_fullScan_time_lst[-1]
plt.xlim(0, gv.waferScan_max_xlim)

if gv.scan_name != None:            # These conditional statements check to see which title should be used
    if gv.lowpass_yes == True:
        plt.title(f"{gv.scan_name}\nLowpass Filter Settings:     N: {gv.lowpass_N}     Wn: {gv.lowpass_Wn}\nRPMs = {rpms}     Time to Scan = {round(gv.adjusted_time_to_scan,4)} sec", fontsize=12)
    else:
        plt.title(f"{gv.scan_name}\nRPMs = {rpms}     Time to Scan = {round(gv.adjusted_time_to_scan,4)} sec", fontsize=12)
else: 
    if gv.lowpass_yes == True:
        plt.title(f"Lowpass Filter Settings:     N: {gv.lowpass_N}     Wn: {gv.lowpass_Wn}\nRPMs = {rpms}     Time to Scan = {round(gv.adjusted_time_to_scan,4)} sec", fontsize=12)
    else:
        plt.title(f"RPMs = {rpms}     Time to Scan = {round(gv.adjusted_time_to_scan,4)} sec", fontsize=12)
plt.ylabel("Full Wafer Scan (volts)")
plt.xlabel('Full Wafer Scan Time (milliseconds)', fontsize=10)
plt.plot(waferScan_fullScan_time_lst, waferScan, label="Laser Readings", color='k')
0
MacItaly 18 सितंबर 2020, 19:07

1 उत्तर

सबसे बढ़िया उत्तर

यह पता चला है कि खराब प्लॉट प्रदर्शित करने वाले कंप्यूटर में McAfee एंटीवायरस स्थापित था और इसने .exe को स्कैन करने और डेटा के आउटपुट को matplotlib में देरी करने के साथ समस्या का कारण बना। एक बार जब हमने "बहिष्करण" सूची में .exe और आवश्यक प्रोग्राम जोड़ दिए, तो हम ग्राफ को सही ढंग से प्रदर्शित करने में सक्षम थे।

किसी गोल चक्कर में, मैं McAfee को अपने आप में एक वायरस मानूंगा।

0
MacItaly 24 सितंबर 2020, 18:16