You can call f_func in a loop and place the values in a list. Note that the summation needs to start at k=1 to prevent division by zero.
The following example code creates the curve for successive values of n:
from matplotlib import pyplot as plt
import numpy as np
def f_func(n, t):
summation = sum([np.sin(k * t) / k for k in range(1, n + 1)])
return summation
ts = np.linspace(-5, 12.5, 200)
for n in range(1, 11):
fs = [f_func(n, t) for t in ts]
plt.plot(ts, fs, label=f'$n={n}$')
plt.margins(x=0, tight=True)
plt.xlabel('$t$')
plt.ylabel('$f(n, t)$')
plt.legend(ncol=2)
plt.show()

PS: You could play around with numpy's broadcasting and calculate the f-values in one go. The function needs to be adapted a bit, taking sums of columns of an intermediate matrix:
ts = np.linspace(-5, 12.5, 200)
ks = np.arange(1, n+1).reshape(-1, 1)
fs = np.sum(np.sin(ks * ts) / ks, axis=0)
plt.plot(ts, fs, label=f'$n={n}$')
def f_func(n, t)?