gpt4 book ai didi

python-3.x - 带表格格式的 Matplotlib 条形图

转载 作者:行者123 更新时间:2023-12-05 05:12:59 26 4
gpt4 key购买 nike

我在情节的底部添加了一个表格,但它有很多问题:

  1. 右侧填充过多。
  2. 左边的填充太少。
  3. 底部没有填充。
  4. 单元格对于其中的文本来说太小了。
  5. 表格太靠近图的底部。
  6. 属于行名称的单元格未着色以匹配条形的颜色。

我正在胡思乱想摆弄这个。有人可以帮我解决这些问题吗?

这是代码(Python 3):

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
# Set styles
plt.style.use(['seaborn-paper', 'seaborn-whitegrid'])
plt.style.use(['seaborn'])
sns.set(palette='colorblind')
matplotlib.rc("font", family="Times New Roman", size=12)

labels = ['n=1','n=2','n=3','n=4','n=5']
a = [98.8,98.8,98.8,98.8,98.8]
b = [98.6,97.8,97.0,96.2,95.4]
bar_width = 0.20
data = [a,b]
print(data)
colors = plt.cm.BuPu(np.linspace(0, 0.5, len(labels)))
columns = ('n=1', 'n=2', 'n=3', 'n=4', 'n=5')

index = np.arange(len(labels))
plt.bar(index, a, bar_width)
plt.bar(index+bar_width+.02, b, bar_width)
plt.table(cellText=data,
rowLabels=['a', 'b'],
rowColours=colors,
colLabels=columns,
loc='bottom')

plt.subplots_adjust(bottom=0.7)

plt.ylabel('Some y label which effect the bottom padding!')
plt.xticks([])
plt.title('Some title')
plt.show()

这是输出:

enter image description here

更新

这现在可以正常工作,但以防其他人遇到问题:确保您没有使用 IntelliJ SciView 查看您的绘图和对它们所做的更改,因为它不能准确地表示更改并且引入了一些格式问题!

最佳答案

我认为您可以通过在使用 bbox 制作表格时设置边界框来解决第一个问题,如下所示:

bbox=[0, 0.225, 1, 0.2]

参数是[left, bottom, width, height]

第二个问题(着色),是因为color数组没有对应到seaborn着色。您可以使用

查询 seaborn 调色板
sns.color_palette(palette='colorblind')

这将为您提供 seaborn 正在使用的颜色列表。

检查以下修改:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
# Set styles
plt.style.use(['seaborn-paper', 'seaborn-whitegrid'])
plt.style.use(['seaborn'])
sns.set(palette='colorblind')
matplotlib.rc("font", family="Times New Roman", size=12)

labels = ['n=1','n=2','n=3','n=4','n=5']
a = [98.8,98.8,98.8,98.8,98.8]
b = [98.6,97.8,97.0,96.2,95.4]
bar_width = 0.20
data = [a,b]

colors = sns.color_palette(palette='colorblind')
columns = ('n=1', 'n=2', 'n=3', 'n=4', 'n=5')

index = np.arange(len(labels))
fig = plt.figure(figsize=(12,9))
plt.bar(index, a, bar_width)
plt.bar(index+bar_width+.02, b, bar_width)
plt.table(cellText=data,
rowLabels=[' a ', ' b '],
rowColours=colors,
colLabels=columns,
loc='bottom',
bbox=[0, 0.225, 1, 0.2])

fig.subplots_adjust(bottom=0.1)

plt.ylabel('Some y label which effect the bottom padding!')
plt.xticks([])
plt.title('Some title')
plt.show()

我还将子图调整更改为 subplot_adjust(bottom=0.1),因为否则效果不佳。这是输出:

Output

关于python-3.x - 带表格格式的 Matplotlib 条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54138482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com