我想在同一图上显示两个图(散点图和条形图),并具有以下布局:
| 0 | 1 | 2 | 3 |
但是第一个图填充0到2,第二个图填充3。我尝试使用fig, ax = plt.subplots(1,4,figsize = (12, 10))
创建一个1x4的子图数组,但是当我调用sns.scatterplot(...,ax = ...)时,ax
参数只能接受一个子图标签。
在子图调用中还是在ax
参数中,是否有一种方法可以绘制宽度为75%的图?
答案 0 :(得分:2)
这是使用plt.subplots()
并通过使用关键字gridspec_kwdict
来完成此操作的一种方法,该关键字将字典传递给GridSpec构造函数,该构造函数用于创建放置子图的网格。
import numpy as np
from collections import Counter
import matplotlib.pyplot as plt
np.random.seed(123)
data = np.random.randint(0, 10, 100)
x, y = zip(*Counter(data).items())
fig, (ax1, ax2) = plt.subplots(1, 2, gridspec_kw={'width_ratios': [3, 1]},
figsize=(10, 4))
ax1.scatter(x, y)
ax2.bar(x, y)
plt.tight_layout()