首页 > 解决方案 > 如何使用 Python 在 Plotly express 中制作水平直方图?

问题描述

我正在尝试用我的数据制作水平直方图,但出现此错误:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

当我使用时,我总是得到一个漂亮的直方图

px.histogram(df, x="columnName")

但是当我尝试将其更改为水平时,它不起作用。

px.histogram(df, y="columnName") or px.histogram(df, x="columnName", orientation='h') don't work. 

我没有使用 NoneType 的数据,我什至尝试过px.histogram(y=np.random.randn(500)),但它仍然不起作用。

我尝试使用go.Figure(data=[go.Histogram(y=df['columnName'])])which 确实给了我一个水平的 hist 但是我无法根据不同的列更改颜色。

任何帮助将不胜感激,在此先感谢:)

标签: pythonpandasmatplotlibplotlyhistogram

解决方案


建议

如果你看看下面的细节,你会发现我完全同意这有点奇怪。但是,如果您想确定方向,只需省略参数并在将值分配给和orientation之间切换。xy

水平的

fig = px.histogram(x=np.random.randn(500))

在此处输入图像描述

垂直的

fig = px.histogram(y=np.random.randn(500))

在此处输入图像描述

细节

这整件事似乎有点奇怪。orientation被列为参数,px.histogram并且应该采用'h''v'作为有效参数。

方向:str,'h'水平或'v'垂直之一。(默认'v'如果xy被提供并且都是连续的或都是分类的,否则'v'( 'h') 如果x( y) 是分类的并且 y( x) 是连续的,否则'v'( 'h') 如果只有x( y) 是

但我收到了这个错误:

类型错误:+ 不支持的操作数类型:“NoneType”和“str”

在任何情况下,都会px.histogram(x=np.random.randn(500))产生以下水平绘图:

在此处输入图像描述

如果您想将其翻转为垂直,只需交换x with y

px.histogram(y=np.random.randn(500))

在此处输入图像描述


推荐阅读