如何在 Matplotlib 中绘制对数轴
为了在 Matplotlib 中绘制半对数图,我们使用 set_xscale()
或 set_yscale()
和 semilogx()
或 semilogy()
函数。如果必须将两个轴都设置为对数刻度,则可以使用 loglog()
函数。
set_xscale()
或 set_yscale()
函数
我们使用 set_xscale()
或 set_yscale()
函数分别设置 X 轴和 Y 轴的缩放比例。如果我们在函数中使用 log
或 symlog
比例尺,则将各个轴绘制为对数比例尺。使用带有 set_xscale()
或 set_yscale()
函数的 log
标尺仅允许正值,这是让我们如何管理负值,而使用 symlog
标尺既接受正值又接受负值。
import pandas as pd
import matplotlib.pyplot as plt
date=["28 April",
"27 April",
"26 April",
"25 April",
"24 April",
"23 April"]
revenue=[2954222 ,
2878196 ,
2804796 ,
2719896 ,
2626321,
2544792 ]
company_data_df=pd.DataFrame({"date":date,"total_revenue":revenue})
company_data = company_data_df.sort_values(by=['total_revenue'])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data['total_revenue'],company_data['date'])
plt.plot(company_data['total_revenue'],company_data['date'])
plt.xscale("log")
plt.xlabel("Total Revenue")
plt.ylabel("Date")
plt.title("Company Growth",fontsize=25)
plt.show()
输出:
要设置沿 Y 轴的对数轴,我们可以使用 yscale()
函数将 Y 轴比例尺设置为 log
:
import pandas as pd
import matplotlib.pyplot as plt
date=["28 April",
"27 April",
"26 April",
"25 April",
"24 April",
"23 April"]
revenue=[2954222 ,
2878196 ,
2804796 ,
2719896 ,
2626321,
2544792 ]
company_data_df=pd.DataFrame({"date":date,"total_revenue":revenue})
company_data = company_data_df.sort_values(by=['total_revenue'])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data['date'],company_data['total_revenue'])
plt.plot(company_data['date'],company_data['total_revenue'])
plt.yscale("log")
plt.xlabel("Date")
plt.ylabel("Total Revenue")
plt.title("Company Growth",fontsize=25)
plt.show()
输出:
为了沿两个轴设置对数值,我们同时使用了 xscale()
和 yscale()
函数:
import pandas as pd
import matplotlib.pyplot as plt
x = [10, 100, 1000, 10000, 100000]
y = [2, 4 ,8, 16, 32]
fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.grid()
plt.xscale("log")
plt.yscale("log",basey=2)
plt.xlabel("x",fontsize=20)
plt.ylabel("y",fontsize=20)
plt.title("Plot with both log axes",fontsize=25)
plt.show()
输出:
这里 basey = 2
表示沿 Y 轴的 2
的对数。
semilogx()
或 semilogy()
函数
semilogx()
函数创建沿 X 轴具有对数缩放比例的图,而 semilogy()
函数创建沿 Y 轴具有对数缩放比例的图。默认的对数底数是 10,而底数可以分别为函数 semilogx()
和 semilogy()
设置 basex
和 basey
参数。
import pandas as pd
import matplotlib.pyplot as plt
date=["28 April",
"27 April",
"26 April",
"25 April",
"24 April",
"23 April"]
revenue=[2954222 ,
2878196 ,
2804796 ,
2719896 ,
2626321,
2544792 ]
company_data_df=pd.DataFrame({"date":date,"total_revenue":revenue})
company_data = company_data_df.sort_values(by=['total_revenue'])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data['total_revenue'],company_data['date'])
plt.plot(company_data['total_revenue'],company_data['date'])
plt.semilogx()
plt.xlabel("Total Revenue")
plt.ylabel("Date")
plt.title("Company Growth",fontsize=25)
plt.show()
输出:
要沿两个轴设置对数值,我们可以同时使用 semilogx()
和 semilogy()
函数:
import pandas as pd
import matplotlib.pyplot as plt
x = [10, 100, 1000, 10000, 100000]
y = [2, 4 ,8, 16, 32]
fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.grid()
plt.semilogx()
plt.semilogy(basey=2)
plt.xlabel("x",fontsize=20)
plt.ylabel("y",fontsize=20)
plt.title("Plot with both log axes",fontsize=25)
plt.show()
输出:
loglog()
函数
为了沿 X 和 Y 轴进行对数缩放,我们还可以使用 loglog()
函数。X 轴和 Y 轴的对数底数由 basex
和 basey
参数设置。
import pandas as pd
import matplotlib.pyplot as plt
x = [10, 100, 1000, 10000, 100000]
y = [2, 4 ,8, 16, 32]
fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.loglog(basex=10,basey=2)
plt.xlabel("x",fontsize=20)
plt.ylabel("y",fontsize=20)
plt.title("Plot with both log axes",fontsize=25)
plt.show()
输出:
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串