繁体   English   中英

如何将 TreeMap 和饼图添加为子图?

[英]How to add TreeMap and Pie Chart as Subplot?

我正在尝试将 PIE 图表和 Treemap 添加为子图。 如下所示(预期):- 在此处输入图像描述

根据squarify 文档我试图将轴 object 作为 ax 参数传递 但是它不起作用。 在经过轴 object 时,第二个 plot 将变为空。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.gridspec as gridspec
import squarify
# Fixing random state for reproducibility
np.random.seed(19680801)

dt = 0.01
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t / 0.05)

cnse = np.convolve(nse, r) * dt
cnse = cnse[:len(t)]
s = 0.1 * np.sin(2 * np.pi * t) + cnse

fig, (ax0, ax1) = plt.subplots(ncols=2, constrained_layout=True)
fig.set_figheight(7)
fig.set_figwidth(13)
#plt.subplot(211)


# Pie chart, where the slices will be ordered and plotted counter-clockwise:
labels = ['Frogs', 'Hogs']
sizes = [15, 30]
explode = (0, 0.1)  # only "explode" the 2nd slice (i.e. 'Hogs')


ax0.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
        shadow=True, startangle=90)
#plt.subplot(212)
#ax1.psd(s, 512, 1 / dt)

plt.show()



volume = [350, 220, 170, 150, 50]
labels = ['Liquid\n volume: 350k', 'Savoury\n volume: 220k', 'Sugar\n volume: 170k',
          'Frozen\n volume: 150k', 'Non-food\n volume: 50k']
color_list = ['#0f7216', '#b2790c', '#ffe9a3', '#f9d4d4', '#d35158', '#ea3033']

plt.rc('font', size=14)
squarify.plot(sizes=volume, label=labels,
              color=color_list, alpha=0.7)
plt.axis('off')

plt.show()

我找到了解决方案。 上面的代码几乎是正确的,除了 1 个问题。 在 Squerify 的 plot 之前有一条语句调用 show 方法。 删除其工作后。 信用:@JahanC

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.gridspec as gridspec
import squarify
# Fixing random state for reproducibility
np.random.seed(19680801)

dt = 0.01
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t / 0.05)

cnse = np.convolve(nse, r) * dt
cnse = cnse[:len(t)]
s = 0.1 * np.sin(2 * np.pi * t) + cnse

fig, (ax0, ax1) = plt.subplots(ncols=2, constrained_layout=True)
fig.set_figheight(7)
fig.set_figwidth(13)
#plt.subplot(211)


# Pie chart, where the slices will be ordered and plotted counter-clockwise:
labels = ['Frogs', 'Hogs']
sizes = [15, 30]
explode = (0, 0.1)  # only "explode" the 2nd slice (i.e. 'Hogs')


ax0.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
        shadow=True, startangle=90)
#plt.subplot(212)
#ax1.psd(s, 512, 1 / dt)




volume = [350, 220, 170, 150, 50]
labels = ['Liquid\n volume: 350k', 'Savoury\n volume: 220k', 'Sugar\n volume: 170k',
          'Frozen\n volume: 150k', 'Non-food\n volume: 50k']
color_list = ['#0f7216', '#b2790c', '#ffe9a3', '#f9d4d4', '#d35158', '#ea3033']

plt.rc('font', size=14)
squarify.plot(sizes=volume, label=labels, ax=ax1,
              color=color_list, alpha=0.7)
plt.axis('off')

plt.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM