両対数表示で直線にするにはpolyfitのの代入は(log_x, log_y) にする必要があると思います。
10**log_xで元の形にして両対数表示にしています。
x,y(もしくは(log_x, y)でフィットしたものは直線にならないので良いようです。
ちなみに log_x = np.log10(x) と内包表記の必要ないです。
#%%
x = np.array([3.00, 2.50, 2.00, 1.50, 1.00, 0.50])
y = np.array([185, 162, 139, 115, 86, 51])
log_x = np.log10(x)
log_y = np.log10(y)
#%% log_x, log_yでpolyfit
linear = np.polyfit(log_x, log_y, 1)
log_y_pred = linear[1] + linear[0] * log_x
plt.xscale("log")
plt.yscale("log")
plt.scatter(10**log_x, 10**log_y, color = 'black', marker='s')
plt.plot(10**log_x, 10**log_y_pred)
plt.show()
1Like