首页 / PYTHON / 如何在python中做嵌套子图
如何在python中做嵌套子图
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在python中做嵌套子图,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2071字,纯文字阅读大概需要3分钟。
内容图文
![如何在python中做嵌套子图](/upload/InfoBanner/zyjiaocheng/685/14f45461d00d4b6c96ee698da5f1eeca.jpg)
我有一个这样的数据集:
样本数据框:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
我只知道如何生成个人情节:
for k, m in zip('ABCD', 'mbry'):
plt.figure(k)
for i in range(5):
plt.subplot(5,1,i+1)
plt.bar(range(20), df[k][20*i: 20*(i+1)], color = m)
plt.subplots_adjust(wspace=0, hspace=0)
plt.show()
如何在同一页面上绘制所有四个图形?
这就是我要的:
2017年8月2日更新:
我也想将其应用于更大的数据集.这是我尝试过的@Phlya代码,但没有给我我想要的东西:
更大的数据集:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import gridspec
df = pd.DataFrame(np.random.randint(0,100,size=(100, 11)), columns=list('ABCDEFGHIJK'))
from mpl_toolkits.axes_grid1 import axes_grid
f = plt.figure()
for i, (k, m) in enumerate(zip('ABCDEFGHIJK', 'mbrygrygybr')):
ag = axes_grid.Grid(f, 261+i, (5, 1), axes_pad=0)
for j in range(5):
ag[j].bar(range(20), df[k][20*j: 20*(j+1)], color = m)
ag[j].set_ylim(0, df.max().max())
if i%2==0:
if j == 4:
ag[j].yaxis.set_ticks([0, ag[j].get_yticks()[-1]])
else:
ag[j].yaxis.set_ticks([ag[j].get_yticks()[-1]])
else:
ag[j].yaxis.set_ticks([])
if i in (0, 1):
ag[j].xaxis.set_ticks([])
plt.subplots_adjust(wspace=0.5, hspace=0.5)
plt.show()
该数据集包含11组数据,您可以清楚地看到代码出错:
解决方法:
完成重写.
我想,Axesgrid是您想要的.
from mpl_toolkits.axes_grid1 import axes_grid
nrows = 2
ncols = 6
naxes = 5
f = plt.figure(figsize=(10, 6))
for i, (k, m) in enumerate(zip('ABCDEFGHIJK', 'mbrygrygybr')):
ag = axes_grid.Grid(f, (nrows, ncols, i+1), (naxes, 1), axes_pad=0)
for j in range(naxes):
ag[j].bar(range(20), df[k][20*j: 20*(j+1)], color = m)
ag[j].set_ylim(0, df.max().max())
if i%ncols==0:
if j == naxes-1:
ag[j].yaxis.set_ticks([0, ag[j].get_yticks()[-1]])
else:
ag[j].yaxis.set_ticks([ag[j].get_yticks()[-1]])
else:
ag[j].yaxis.set_ticks([])
if i in range(ncols):
ag[j].xaxis.set_ticks([])
plt.subplots_adjust(wspace=0.1, hspace=0.1)
plt.show()
编辑:
不错的刻度和间距
编辑:
现在应该可以在任意数量的网格上正常工作.
当i> 9时,主要问题是网格位置的指定.
内容总结
以上是互联网集市为您收集整理的如何在python中做嵌套子图全部内容,希望文章能够帮你解决如何在python中做嵌套子图所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。