如何在python中通过Seaborn库绘制多行图

2024-09-28 22:42:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了如下代码:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
T = np.array([10.03,100.348,1023.385])
power1 = np.array([100000,86000,73000])
power2 = np.array([1008000,95000,1009000])

df1 = pd.DataFrame(data = {'Size': T, 'Encrypt_Time': power1, 'Decrypt_Time': power2})
exp1= sns.lineplot(data=df1)
plt.savefig('exp1.png')
exp1_smooth= sns.lmplot(x='Size', y='Time', data=df, ci=None, order=4, truncate=False)
plt.savefig('exp1_smooth.png')

这给了我这样的印象:

Image attached: Graph_1

Size=x轴是一条常数线,但正如您在我的代码中看到的,它的变化范围是(101001000)

这是如何产生一条常数线的?我的代码有问题吗? 我想生成一个x轴=大小(T),y轴=加密时间和解密时间的多行图(power1和power2)

我还想画一个平滑的图,和我现在得到的图一样,但它给了我错误。有谁能帮我写这段代码,告诉我需要做些什么才能实现x轴=大小(T),y轴=加密时间和解密时间(power1和power2)的平滑多线图


Tags: 代码importdatasizetimeasnp时间
1条回答
网友
1楼 · 发布于 2024-09-28 22:42:03

我认为这不是问题所在,这行表示的size看起来像常量,但不是

可以看到大小的值在10-1000范围内,而y轴的最小分割为20000(大20倍),使其看起来像图形上的水平线。 您可以尝试使用更大的值以清楚地看到坡度

如果希望“大小”作为x轴,可以尝试以下示例:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
T = np.array([10.03,100.348,1023.385])
power1 = np.array([100000,86000,73000])
power2 = np.array([1008000,95000,1009000])

df1 = pd.DataFrame(data = {'Size': T, 'Encrypt_Time': power1, 'Decrypt_Time': power2})
fig = plt.figure()
fig = sns.lineplot(data=df1, x='Size',y='Encrypt_Time' )
fig = sns.lineplot(data=df1, x='Size',y='Decrypt_Time' )

相关问题 更多 >