matplotlib(bar chart on polar axis)极轴图对数坐标的使用、极轴图、极坐标图、极区图、极散点图画法

matplotlib极坐标图、极区图、极散点图画法

对于小伙伴想要了解极坐标图、极区图、极散点图画法可以访问下面的链接,因为论文画图所需,所以有百度了下这方面的资料,在此我做一个小总结:

极区图的对数坐标的使用

不知道大家在工作或者学习中,有没有碰到过数据相差特别大的时候,要怎么画图,如这两个数据:0.01和100,当我们画图的时候,就很难看见0.01这个数据在哪,或者如果0.01代表比重的话,我们画完图几乎看不到其比重,因为被忽略了,那么问题来了。如果在画图的时候,我们想看到0.01和100的分布或者是贡献的话,我们要怎么办呢?这时候,对数坐标就起到了很好的作用了。

普通的散点图的对数坐标

在这里,我直接附上代码,供大家参考使用。可以看到x的值,最大和最小相差了几千倍,如果不用对数坐标就很难看到小值的数据的分布了,我们可以通过图片看到不用对数坐标的缺陷。运行的图片:分别是不用对数坐标和用对数坐标的图,如下。可以看到,未使用对数坐标的图片,看不到小数据值的分布,x=4时永远都是处于0的位置。而使用对数坐标后,就可以看到小数据值的分布了。
在使用对数坐标的时候有两行关键代码:

  1. 设置标度:plt.xticks([10, 100, 1000, 10000])
  2. 设置对数刻度:plt.xscale(“log”)

如果大家使用子图,可以使用ax.set_xticks()和ax.set_xscale()来设置对数坐标,用法都大抵相同。

x_1 = [4, 4, 4, 4, 60, 8, 55, 9495]
y_1 = [80, 70, 90, 60, 50.0, 59.0, 60, 75]
x_2 = [4, 4, 4, 4, 58, 8, 49, 9534]
y_2 = [85, 80, 75, 70, 55.0, 60, 50, 75]
plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.plot(x_1[0], y_1[0],'o',markersize=13.,label="A")
plt.plot(x_1[1], y_1[1],'o',markersize=13., label="B")
plt.plot(x_1[2], y_1[2],'o',markersize=13., label="C")
plt.plot(x_1[3], y_1[3],'o',markersize=13., label="D")
plt.plot(x_1[4], y_1[4],'o',markersize=13., label="E")
plt.plot(x_1[5], y_1[5],'o',markersize=13., label="F")
plt.plot(x_1[6], y_1[6],'o',markersize=13., label="G")
plt.plot(x_1[7], y_1[7],'o',markersize=13., label="H")
plt.xticks([10, 100, 1000, 10000])
plt.xscale("log")
plt.grid()
plt.legend(loc="lower right")
plt.xlabel("X values", fontsize=12)
plt.ylabel("y values", fontsize=12)

plt.subplot(122)
plt.plot(x_2[0], y_2[0],'o',markersize=13.,label="A")
plt.plot(x_2[1], y_2[1],'o',markersize=13., label="B")
plt.plot(x_2[2], y_2[2],'o',markersize=13., label="C")
plt.plot(x_2[3], y_2[3],'o',markersize=13., label="D")
plt.plot(x_2[4], y_2[4],'o',markersize=13., label="E")
plt.plot(x_2[5], y_2[5],'o',markersize=13., label="F")
plt.plot(x_2[6], y_2[6],'o',markersize=13., label="G")
plt.plot(x_2[7], y_2[7],'o',markersize=13., label="H")
plt.xticks([10, 100, 1000, 10000])
plt.xscale("log")
plt.grid()
plt.legend(loc="lower right")
plt.xlabel("X values", fontsize=12)
plt.ylabel("y values", fontsize=12)
plt.show()

matplotlib(bar chart on polar axis)极轴图对数坐标的使用、极轴图、极坐标图、极区图、极散点图画法
matplotlib(bar chart on polar axis)极轴图对数坐标的使用、极轴图、极坐标图、极区图、极散点图画法

极轴图的对数坐标的使用

在这里,我直接附上代码和图。可以看到,数据值大的和数据值小的都能得到表现。详解可以见我上面所列举的几个网址和matplotlib官方教程

极轴图官方教程:matplotlib官网教程

在极轴图使用对数坐标时,需要注意几行关键代码:

  1. ax1.set_rlim(math.pow(10, -1),math.pow(10, 2)):设置数据范围
  2. ax1.set_rticks(x_range):设置极轴刻度
  3. ax1.set_rscale(‘symlog’):设置为对数刻度

N = 8
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
width1 = np.pi / 4 * np.random.rand(N)
colors = plt.cm.viridis(radii / 10)

plt.figure(figsize=(15, 16))
radii_1= np.array([0.05, 0.011, 0.011, 0.011, 0.011, 0.011, 0.011, 0.011])
radii_1 = radii_1 * 100
ax1= plt.subplot(121, projection='polar')
ax1.bar(theta, radii_1, width=width1, bottom=0, color=colors)
ax1.set_rlim(math.pow(10, -1),math.pow(10, 2))
x_range = np.linspace(0.0, 3, 6, endpoint=False)
ax1.set_rticks(x_range)
ax1.set_rscale('symlog')
ax1.set_title("(")

radii_2= np.array([5, 1.1, 25, 1.1, 1.1, 1.1, 1.1, 1.1])
ax2= plt.subplot(122, projection='polar')
ax2.bar(theta,radii_2, width=width1, bottom=0, color=colors)
ax2.set_rlim(math.pow(10, -1),math.pow(10, 2))
x_range = np.linspace(0.0, 3, 6, endpoint=False)
ax2.set_rticks(x_range)
ax2.set_rscale('symlog')
ax2.set_title("(b)")
plt.show()

matplotlib(bar chart on polar axis)极轴图对数坐标的使用、极轴图、极坐标图、极区图、极散点图画法

总结

以上就是极轴图的画法和对数坐标的使用方法了,想必大家也看到了对数坐标的优点所在。 这种图可以用来可视化比较的数据呀。可能源代码中有些调用的方法大家不明白,可以自行百度其方法的含义。文章可能有瑕疵,还望大家多多包含,予以指正。

Original: https://blog.csdn.net/z418998824/article/details/118788323
Author: 怀恋的愤怒
Title: matplotlib(bar chart on polar axis)极轴图对数坐标的使用、极轴图、极坐标图、极区图、极散点图画法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766621/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球