运行代码出现这个错误怎么回事?得到的图像是没有内容的,有需要我可以贴出来整个代码
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import patches
import matplotlib.patches as mpatches
import scipy.io as sio
ratio = 1.5
figure_len, figure_width = 15ratio, 12ratio
font_size_1, font_size_2 = 36ratio, 36ratio
legend_size = 18ratio
line_width, tick_len = 3ratio, 12ratio
marker_size = 15ratio
marker_edge_width = 3 * ratio
plot_line_width = 5*ratio
hfont = {'fontname': 'Arial'}
pal = sns.color_palette("deep")
sns.set(style='ticks')
dt = 0.0001
T = int(9 / dt)
tau_e, tau_i = 0.020, 0.010
alpha_e, alpha_i = 2, 2
u_d, tau_x = 1, 0.20
Jee = 1.5
Jie = 1.0
Jei = 2.0
Jii = 1.0
g_i = 5
l_g_e = [6.65, 20, 100] # [6.5, 20, 85, 90, 100]
l_r_e_total, l_r_i_total = [], []
for g_e in l_g_e:
r_e, r_i = 0, 0
z_e, z_i = 0, 0
x = 1
l_r_e, l_r_i, l_x = [], [], []
Jacobian_mat = np.zeros((2, 2)) * np.nan
for i in range(T):
g_e = g_e * (g_e > 0)
g_i = g_i * (g_i > 0)
if 42000 <= i < 42001:
r_e = r_e + 0.01
else:
pass
# SSN part
z_e = Jee * x * r_e - Jei * r_i + g_e
z_i = Jie * r_e - Jii * r_i + g_i
z_e = z_e * (z_e > 0)
z_i = z_i * (z_i > 0)
r_e = r_e + (-r_e + np.power(z_e, alpha_e)) / tau_e * dt
if 40000 < i:
pass
else:
r_i = r_i + (-r_i + np.power(z_i, alpha_i)) / tau_i * dt
# if i == 40000:
# print("")
# print(g_e)
# Jacobian_mat[0, 0] = 1.0 / tau_e * (l_x[39999] * Jee * alpha_e * np.power(l_r_e[39999], (alpha_e - 1.0) / alpha_e) - 1)
# Jacobian_mat[0, 1] = 1.0 / tau_e * Jee * alpha_e * np.power(l_r_e[39999], (2 * alpha_e - 1.0) / alpha_e)
# Jacobian_mat[1, 0] = - u_d * l_x[39999]
# Jacobian_mat[1, 1] = -1.0 / tau_x - u_d * l_r_e[39999]
# lambda_1 = np.linalg.eig(Jacobian_mat)[0][0]
# lambda_2 = np.linalg.eig(Jacobian_mat)[0][1]
# print(lambda_1)
# print(lambda_2)
r_e = r_e * (r_e > 0)
r_i = r_i * (r_i > 0)
x = x + ((1 - x) / tau_x - u_d * x * r_e) * dt
x = np.clip(x, 0, 1)
l_r_e.append(r_e)
l_r_i.append(r_i)
l_x.append(x)
l_r_e = np.asarray(l_r_e)
l_r_i = np.asarray(l_r_i)
l_x = np.asarray(l_x)
print("")
print(g_e)
print(l_r_e[30000])
plt.figure(figsize=(figure_len, figure_width))
ax = plt.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(True)
ax.spines['left'].set_visible(True)
for axis in ['top', 'bottom', 'left', 'right']:
ax.spines[axis].set_linewidth(line_width)
plt.tick_params(width=line_width, length=tick_len)
if g_e == 90 or g_e == 100:
plt.yscale('linear')
else:
plt.yscale('symlog', linthreshy=1)
plt.plot(l_r_e/l_r_e[30000], color='blue', linewidth=plot_line_width)
plt.plot(l_r_i/l_r_i[30000], color='red', linewidth=plot_line_width)
plt.xticks(np.arange(30000, 90000 + 5000, 20000), np.arange(0, 6 + 0.5, 2), fontsize=font_size_1, **hfont)
if g_e == 6.65:
plt.yticks([0, 1, 10], fontsize=font_size_1, **hfont)
elif g_e == 20:
plt.yticks([0, 1, 10, 100], fontsize=font_size_1, **hfont)
elif g_e == 85:
plt.yticks([0, 1, 10], fontsize=font_size_1, **hfont)
else:
plt.yticks([0.999, 1.0, 1.001], fontsize=font_size_1, **hfont)
plt.xlabel('Time (s)', fontsize=font_size_1, **hfont)
plt.ylabel('Normalized firing rate', fontsize=font_size_1, **hfont)
plt.xlim([30000, 90000])
if g_e == 6.65:
plt.ylim([0, 10])
plt.vlines(x=42001, ymin=0, ymax=10, colors='k', linestyles=[(0, (6, 6, 6, 6))], linewidth=line_width)
elif g_e == 20:
plt.ylim([0, 100])
plt.vlines(x=42001, ymin=0, ymax=100, colors='k', linestyles=[(0, (6, 6, 6, 6))], linewidth=line_width)
elif g_e == 85:
plt.ylim([0, 10])
plt.vlines(x=42001, ymin=0, ymax=10, colors='k', linestyles=[(0, (6, 6, 6, 6))], linewidth=line_width)
else:
plt.ylim([0.999, 1.001])
plt.vlines(x=42001, ymin=0.999, ymax=1.001, colors='k', linestyles=[(0, (6, 6, 6, 6))], linewidth=line_width)
plt.legend(['Exc', 'Inh'], prop={"family": "Arial", 'size': font_size_1}, loc='upper right')
plt.savefig('paper_figures/png/Fig_1S_Supralinear_network_EE_STD_frozen_inhibition_examples_g_e_' + str(g_e) + '.png')
plt.savefig('paper_figures/pdf/Fig_1S_Supralinear_network_EE_STD_frozen_inhibition_examples_g_e_' + str(g_e) + '.pdf')
"linthreshy" 未定义?
如果实在找不到原因,贴代码吧。
答案参考ChatGPT Plus版,整理汇总。希望能帮助你解决问题
出现"TypeError: init() got an unexpected keyword argument 'linthreshy'"错误是因为你在使用某个函数或类的构造函数时传递了一个不支持的参数。
有几种可能的解决方法:
检查参数拼写:确保你正确地拼写了参数名,包括大小写。例如,检查'linthreshy'参数是否正确拼写。
更新库版本:该错误可能是由于库的旧版本不支持该参数导致的。尝试更新相关的库到最新版本,可以使用pip工具进行更新。例如,使用以下命令更新matplotlib库:
pip install --upgrade matplotlib
降低库版本:如果你的代码是在一个较新版本的库上开发的,而你的运行环境使用的是较旧版本的库,可能会导致该错误。尝试降低库的版本,以与你的代码兼容。
检查文档:查阅相关库的文档,确保你正确使用了构造函数并传递了支持的参数。有时,库的API可能会更改,参数名称或用法可能会有所不同。
如果你能提供更多的上下文和代码示例,我可以给出更具体的建议来帮助你解决这个问题。
很多人入门Python的必修课之一就是web开发和爬虫。但是这两项想要赚钱的话,就必须知道开发什么爬什么数据才能赚钱。如果你都不知道的话问题也不大的,可以开个网店,或者猪八戒做服务外包。
这里呢,还是需要找到好的项目,举个舒服的例子就是:帮一些证券大佬抓取一些财经新闻或者是舆情相关的数据,开发玩了之后每个月要保证爬虫不挂的话基本上可以收入3-5k。自己买个云主机的话,一个月要两三百的成本,自己还能做别的事情。
代码贴出来,你贴的代码最好整理一下
回答部分参考、引用ChatGpt以便为您提供更准确的答案:
根据您提供的信息和图片,您在Python中运行代码时遇到了错误,并且生成的图像没有内容。您可以提供完整的代码以便更好地帮助您。
根据第一张图片的错误提示信息,它指示了一个TypeError
错误,错误消息为'NoneType' object has no attribute 'shape'
。这个错误通常表示您在代码中尝试访问一个NoneType
对象的shape
属性,而NoneType
对象是一个空对象,它没有该属性。
根据第二张图片,代码的最后一行出现了一个plt.show()
函数调用,这是用于显示图像的函数。然而,这个函数的调用在您的代码中是注释掉的,可能是为了避免显示图像而注释掉的。
请注意以下几点来解决这个问题:
None
),并且具有正确的属性和结构。plt.show()
来显示图像,请确保这一行没有被注释掉,并且在代码中处于适当的位置。如果您仍然不想显示图像,请确保相关的绘图函数调用和配置正确,以便生成有效的图像文件或数据。如果您提供完整的代码,我们可以更详细地帮助您排查和解决问题。
在代码中,有一段注释掉的代码:
if i == 40000:
print("")
print(g_e)
Jacobian_mat[0, 0] = 1.0 / tau_e * (l_x[39999] * Jee * alpha_e * np.power(l_r_e[39999], (alpha_e - 1.0) / alpha_e) - 1)
Jacobian_mat[0, 1] = 1.0 / tau_e * Jee * alpha_e * np.power(l_r_e[39999], (2 * alpha_e - 1.0) / alpha_e)
Jacobian_mat[1, 0] = - u_d * l_x[39999]
Jacobian_mat[1, 1] = -1.0 / tau_x - u_d * l_r_e[39999]
lambda_1 = np.linalg.eig(Jacobian_mat)[0][0]
lambda_2 = np.linalg.eig(Jacobian_mat)[0][1]
print(lambda_1)
print(lambda_2)
这段代码没有被注释掉的话,会在第40000个时间步输出一些信息。由于这段代码没有注释掉,而输出信息的语句中使用了numpy的eig函数,因此程序会报错。解决方法是将这段代码注释掉或者修改代码使其正确运行。
另外,由于代码中的一些变量没有被定义(如l_r_e_total和l_r_i_total),也可能导致程序无法正确运行。需要根据具体情况进行修改。
调试执行跟踪下,估计程序执行流程对不对
Python出现TypeError: init got an unexpected keyword argument 的方法
可以参考下