【发布时间】:2021-11-27 22:43:24
【问题描述】:
我是python的新手,R方面的经验很少。
我有一个带有 gut_list 和百分比的数据框。我想创建一个带有标签的圆形条形图/赛道图。我在 R ggplot 中看到了一个帖子,以创建与 hallow center 类似的东西。但我不确定如何在 python 中使用 ggplot。
我想要与以下 R 组类似的输出。但我想尝试使用 python 包来创建带有标记值和图例的图。
Making a circular barplot with a hollow center (aka race track plot)
示例数据:
gut_list = ("Micro1", "Micro2", "Micro3", "Micro4", "Micro5", "Micro6")
percent = (2, 77, 22, 41, 21, 9)
初审:
import matplotlib.pyplot as plt
from matplotlib import cm
from math import log10
gut_list = ("Micro1", "Micro2", "Micro3", "Micro4", "Micro5", "Micro6")
percent = [2, 77, 22, 41, 21, 9]
#number of data points
n = len(percent)
#find max value for full ring
k = 10 ** int(log10(max(percent)))
m = k * (1 + max(percent) // k)
#radius of donut chart
r = 1.5
#calculate width of each ring
w = r / n
#create colors along a chosen colormap
colors = [cm.PuBu(i / n) for i in range(n)]
#create figure, axis
fig, ax = plt.subplots()
ax.axis("equal")
for i in range(n):
innerring, _ = ax.pie([m - percent[i], percent[i]], radius = r - i * w, startangle = 90, colors = ["white", colors[i]])
plt.setp(innerring, width = w, edgecolor = "lightgrey")
plt.legend()
plt.show()
我仍然没有设法添加标签或图例。
【问题讨论】:
-
欢迎来到 SO。请使用适当的语法分享一些数据。您是否搜索过 matplotlib 或其他绘图库?
-
谢谢@Raphael。现在将数据更正为 python 语法。是的,我试过甜甜圈图。它给了我一个戒指。但我想要多个环 (i.stack.imgur.com/hOv9q.png)。
-
这是一个“赛道情节”,但它们通常不是圆形的。如果我是你,我会尝试实现水平跑道,然后在你迷路时寻求帮助。有时(很多)我们设法从更简单的问题开始解决问题。搜索“race track chart plot python”this 可能会有所帮助。
-
我在这里添加了初始脚本试用。
标签: python matplotlib data-visualization donut-chart python-ggplot