如何在 Python 中通过 Seaborn 库绘制多线图?
How to plot Multiline Graphs Via Seaborn library in 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')
这给了我 Graph_1:
Size
= x- 轴是一条恒定线,但正如您在我的代码中看到的那样,它从 (10,100,1000) 变化。
这是如何产生一条恒定线的?我想生成一个多线图,其中 x 轴 = Size(T),y 轴 = Encrypt_Time 和 Decrypt_Time (power1 & power2).
我还想绘制一个与我现在得到的相同图形的平滑图形,但它给了我错误。要获得 x 轴 = Size(T),y 轴 = Encrypt_Time 和 Decrypt_Time (power1 & power2) 的平滑多线图需要做什么?
我认为这不是问题,代表 size
的线看起来像常数,但不是。
可以看到大小值在 10-1000
范围内,而 y 轴的最小分度为 20,000(大 20 倍),使其在图表上看起来像一条水平线。
您可以尝试使用更大的值以清楚地看到斜率。
如果你想要'size'作为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' )
我编写的代码如下所示:
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')
这给了我 Graph_1:
Size
= x- 轴是一条恒定线,但正如您在我的代码中看到的那样,它从 (10,100,1000) 变化。
这是如何产生一条恒定线的?我想生成一个多线图,其中 x 轴 = Size(T),y 轴 = Encrypt_Time 和 Decrypt_Time (power1 & power2).
我还想绘制一个与我现在得到的相同图形的平滑图形,但它给了我错误。要获得 x 轴 = Size(T),y 轴 = Encrypt_Time 和 Decrypt_Time (power1 & power2) 的平滑多线图需要做什么?
我认为这不是问题,代表 size
的线看起来像常数,但不是。
可以看到大小值在 10-1000
范围内,而 y 轴的最小分度为 20,000(大 20 倍),使其在图表上看起来像一条水平线。
您可以尝试使用更大的值以清楚地看到斜率。
如果你想要'size'作为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' )