首页 > 解决方案 > Matplotlib 条形图或类似的条形图,条形位于特定 x、y、角度

问题描述

有没有办法使用 matplotlib 创建条形图,使条形图位于特定的 x、y 和特定角度?在下面的屏幕截图中,我只是在散点图顶部的 PowerPoint 中绘制了粗线(表示细条)。

它不一定是条形图,我只是不知道这样的情节的名称。我想过尝试用一个颤抖的情节来模仿这一点,但不知道怎么做。想要这个的原因是具有可变值的密集间隔点(不像本示例中那样单调增加),并且仅着色散点图并不能从视觉上阐明感兴趣的趋势,即使使用不同的颜色图也是如此。

在此处输入图像描述

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(25)
y = -x
z = x
plt.scatter(x, y, c=z, cmap='viridis')

标签: pythonmatplotlibbar-chart

解决方案


我不知道这样做的固定方法,但您可以在紧要关头创建自己的函数来绘制矩形来创建此图。例如:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Rectangle

x = np.arange(25)
y = -x
z = x
plt.scatter(x, y, c=z, cmap='viridis')

def slanted_bars(x, y, z, angle, ax):
    for xi, yi, zi in zip(x, y, z):
        ax.add_patch(Rectangle((xi, yi), 1, zi, angle))

fig, ax = plt.subplots(1, 1)
ax.scatter(x, y, c=z, cmap='viridis')
slanted_bars(x, y, z, -45, ax)

在此处输入图像描述

您必须使用矩形的颜色和形状才能获得吸引人的东西,但它可以做您想做的事情。


推荐阅读