如何在 Matplotlib 中绘制对数轴

您所在的位置:网站首页 Python画对数图刻度如何等间距 如何在 Matplotlib 中绘制对数轴

如何在 Matplotlib 中绘制对数轴

2024-07-09 23:52| 来源: 网络整理| 查看: 265

set_xscale() 或 set_yscale() 函数 semilogx() 或 semilogy() 函数 loglog() 函数

为了在 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()

输出:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3