【发布时间】:2018-07-09 20:23:26
【问题描述】:
各位 Python 专家,
PI 图表无法很好地显示,因为列名较长且切片较小。在此示例中,您可以看到我有 6 个存储桶,但在 PI 图表中,只有 5 个切片可见。甚至标有切片(右上角)和顶部的文本也相互重叠。表格宽度也不足以容纳列内容。您能否建议处理这种情况的最佳方法是什么?我是python的新手。我正在使用 anaconda python 3.6。
代码:
import pandas as pd
import matplotlib.pyplot as plt
from pandas.tools.plotting import table
raw_data = {'FLAG' : ['AT-NBBO', 'BETTER-THAN-NBBO', 'ONE-SIDED-QUOTE', 'OUTSIDE-NBBO', 'OUTSIDE-NBBO-DUE-TO-OVERSIZED-BUT-NO-EXECUTION-WITHIN-NBBO', 'OUTSIDE-NBBO-DUE-TO-OVERSIZED-BUT-SOME-EXECUTION_WITHIN_NBBO'],
'COUNT' : [10840, 8628, 84, 633, 153, 14]
}
df = pd.DataFrame(raw_data, columns = ['FLAG', 'COUNT'])
plt.figure(figsize=(16,8))
ax1 = plt.subplot(121, aspect='equal')
df.plot(kind='pie', y = 'COUNT', ax=ax1, autopct='%1.1f%%',
startangle=90, shadow=False, labels=df['FLAG'], legend = True,
fontsize=14)
# plot table
ax2 = plt.subplot(122)
plt.axis('off')
tbl = table(ax2, df, loc='right')
tbl.auto_set_font_size(False)
tbl.set_fontsize(20)
plt.show()
【问题讨论】:
-
正如您之前对您之前(此版本相同)问题的评论:您希望情节看起来如何?也许您可以使用手绘草图或绘画程序来使其更清晰。另外,究竟是
table是什么?如果您的代码不完整且不可验证,则没有人可以运行您的代码,因此如果您想要关于table的解决方案,您需要共享创建它的函数。 -
@ImportanceOfBeingErnest,您是否尝试运行我的代码?这是一个完整的代码,并产生如上所示的输出。我删除了我以前的帖子,因为您已将其标记为重复,并且首先标记为未完成,因此创建了新帖子。表格显示了不适合表格的数据框的内容。这在我的输出中清晰可见。我不确定你到底在看什么?您是本论坛的版主吗?
-
是的,我什至确实尝试过运行您的代码,尽管通过查看它已经很明显
table没有在任何地方定义,因此在运行它时会产生错误NameError: name 'table' is not defined。为了回答这个问题,你需要知道你希望你的情节是什么样子,而不是现在的样子。我不是版主,但我经常尝试向人们解释他们的问题需要什么才能回答(从我上面评论旁边的数字(5),你会看到有 5 人同意我的观点)。 -
@ImportanceOfBeingErnest,感谢您的建议。我不确定您为什么会收到错误消息。可能您的 python 版本与我的不同。我正在使用 Python3.6。我刚刚在上面的代码中添加了额外的导入。在我的代码中,您可以看到我有 6 个存储桶,但在 pi 图中只有 5 个可见。在该文本标签中,有 3 个切片(右上角)彼此重叠。在表格中,您还可以看到文本出现在表格宽度之外。您能帮我找到解决问题的方法吗?
-
因为您现在使此代码可运行(包括所有需要的导入)我现在可以从问题中重现图像。失踪的“水桶”确实在剧情中,但与其他相比,它是如此之小,以至于几乎无法观察到。所以这又引出了一个问题,你希望你的情节看起来如何?桌子也一样;您希望长标签如何适合桌子?您想减小字体大小以使其适合,还是想要更大的表格?
标签: python python-3.x pandas matplotlib anaconda