在Python中绘制图形需要很长时间

时间:2018-03-24 19:20:00

标签: python matplotlib graph

为了在文本文件中绘制100,000到500,000个数据点,我使用以下代码。 问题是:

如果我将数据点复制并粘贴到绘图软件中,到达绘图只需30秒,但使用以下代码可能需要1小时或更长时间才能通过Python进行绘图。

import pandas as pd
import numpy as np
import json
import itertools
import usaddress

def address_func(address):
    try:
        return usaddress.tag(address)
    except:
        return [{'AddressConverstion':'Error'}]

# import file
file = pd.read_excel('addresses.xlsx')

# apply function
file['tag_response'] = file['Full Address'].apply(address_func)

# copy values to new column
file['tags'] = file.apply(lambda row: row['tag_response'][0], axis=1)

# dump json
tags_combined = json.dumps(list(file['tags']))

# create dataframe of parsed info
df_parsed = pd.io.json.json_normalize(json.loads(tags_combined))

# merge dataframes on index
merged = file.join(df_parsed)

有什么问题?我该怎么解决? 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

一些一般规则:

  1. 使用numpy,而不是math
  2. 避免for-loops
  3. 不要创造不必要的艺术家。
  4. 在这里,您想要创建一个包含所有点数的艺术家,而不是每个艺术家创造一个点的500000名艺术家。

    import numpy as np
    import matplotlib.pyplot as plt
    
    cmin=502.8571071527562
    c,O=np.genfromtxt('textfile.txt',unpack=True)
    
    q=np.exp(-0.5*(c-cmin))
    plt.plot(O, q, 'bo')
    
    plt.show()