如何使用 python 平滑图形
How to smoothen graphs with python
我正在努力平滑这个情节。但是我做不到。尝试使用 splrep 进行插值,但它不起作用。任何帮助将不胜感激。该图是使用电流、电压和工作时间的 Dataframe 列绘制的。
df2=data[:2000]
plt.subplot(2,1,1)
plt.plot(df2['Op_Hours_Fcpm'],df2['Current'],'r')
plt.xlabel('Operating hours')
plt.title('Current Fluctuations')
plt.subplot(2,1,2)
plt.plot(df2['Op_Hours_Fcpm'],df2['Voltage'],'y')
plt.xlabel('Operating hours')
plt.title('Voltage Fluctuations')
plt.tight_layout()
plt.show()
我也尝试过另一种方式:
fig, ax = plt.subplots()
ax.plot(x_int, current_int, lw = 5, alpha = 0.30, label = 'current')
ax.plot(x_int, voltage_int, lw = 5, alpha = 0.30, label = 'voltage')
ax.set_xlabel('ripples')
ax.set_ylabel('hrs')
# Set the correct xticks
ax.set_xticks(x_map)
ax.set_xticklabels(x)
fig.legend(bbox_to_anchor=(0.7, 0.3), loc='upper left', ncol=1)
fig.show()
这给出了这个输出
由于您没有提供原始数据,我尝试使用
从图像中重新创建一些点
import pandas
print(pandas.__version__)
import matplotlib.pyplot as plt
x = [0.5, 0.5, 1, 1, 2, 2, 2 , 3]
y = [0, 600, 0, 600, 0, 1000, 600, 0]
plt.plot(x,y,'r');
plt.xlabel('Operating hours')
plt.title('Current Fluctuations');
plt.savefig('original.png');
产生
第一个子图的问题是某些时间包含多个值,包括“零”和 non-zero 值。这可以更容易地看作散点图
plt.scatter(x, y);
plt.xlabel('Operating hours')
plt.title('Current Fluctuations');
plt.savefig('scatter.png')
此可视化问题表明基础数据存在问题。
一种选择是丢弃零数据,只保留 non-zero 个数据点。
我正在努力平滑这个情节。但是我做不到。尝试使用 splrep 进行插值,但它不起作用。任何帮助将不胜感激。该图是使用电流、电压和工作时间的 Dataframe 列绘制的。
df2=data[:2000]
plt.subplot(2,1,1)
plt.plot(df2['Op_Hours_Fcpm'],df2['Current'],'r')
plt.xlabel('Operating hours')
plt.title('Current Fluctuations')
plt.subplot(2,1,2)
plt.plot(df2['Op_Hours_Fcpm'],df2['Voltage'],'y')
plt.xlabel('Operating hours')
plt.title('Voltage Fluctuations')
plt.tight_layout()
plt.show()
我也尝试过另一种方式:
fig, ax = plt.subplots()
ax.plot(x_int, current_int, lw = 5, alpha = 0.30, label = 'current')
ax.plot(x_int, voltage_int, lw = 5, alpha = 0.30, label = 'voltage')
ax.set_xlabel('ripples')
ax.set_ylabel('hrs')
# Set the correct xticks
ax.set_xticks(x_map)
ax.set_xticklabels(x)
fig.legend(bbox_to_anchor=(0.7, 0.3), loc='upper left', ncol=1)
fig.show()
这给出了这个输出
由于您没有提供原始数据,我尝试使用
从图像中重新创建一些点import pandas
print(pandas.__version__)
import matplotlib.pyplot as plt
x = [0.5, 0.5, 1, 1, 2, 2, 2 , 3]
y = [0, 600, 0, 600, 0, 1000, 600, 0]
plt.plot(x,y,'r');
plt.xlabel('Operating hours')
plt.title('Current Fluctuations');
plt.savefig('original.png');
产生
第一个子图的问题是某些时间包含多个值,包括“零”和 non-zero 值。这可以更容易地看作散点图
plt.scatter(x, y);
plt.xlabel('Operating hours')
plt.title('Current Fluctuations');
plt.savefig('scatter.png')
此可视化问题表明基础数据存在问题。
一种选择是丢弃零数据,只保留 non-zero 个数据点。