Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 图表不见了-什么库可以做交互式彩色散点图?_Python_Plot_Bokeh_Scatter Plot - Fatal编程技术网

Python 图表不见了-什么库可以做交互式彩色散点图?

Python 图表不见了-什么库可以做交互式彩色散点图?,python,plot,bokeh,scatter-plot,Python,Plot,Bokeh,Scatter Plot,我发现自己最常做的可视化之一是:我有x,y数据,按类别标记。我需要绘制一个散点图,根据标签自动着色点,并生成一个图例然后可视化应该是交互式的(可缩放,悬停在点上显示元数据等) 这是一个完美的例子,我正在寻找的东西-一些存在于现在不推荐的: 我知道我可以与seaborn进行非交互操作: fig = sns.lmplot(x="Length", y="Boot", hue="class", fit_reg=False, data=df) 我可以与bokeh交互绘图,但只能在低级别上进行,没有颜色

我发现自己最常做的可视化之一是:我有x,y数据,按类别标记。我需要绘制一个散点图,根据标签自动着色点,并生成一个图例然后可视化应该是交互式的(可缩放,悬停在点上显示元数据等)

这是一个完美的例子,我正在寻找的东西-一些存在于现在不推荐的:

我知道我可以与seaborn进行非交互操作:

fig = sns.lmplot(x="Length", y="Boot", hue="class", fit_reg=False, data=df)
我可以与bokeh交互绘图,但只能在低级别上进行,没有颜色或图例:

p = Scatter(df, x="Length", y="Boot", plot_width=800, plot_height=600, 
    tooltips=TOOLTIPS, title="Cars")
我还知道存在各种解决方法,例如手动定义调色板。然而,对于曾经是简单的一行程序(现在仍然是,在R中)的东西来说,这是非常复杂的。替代品Holoview似乎不支持散点图中的着色:

因此,对于在一行程序中支持这种开箱即用的Python包,有没有什么建议,而不是在低级基础上手动编写此代码?

该库是bokeh charts API的良好替代品。然而,由于API对于习惯命令式绘图API的人来说相当陌生,我们最近发布了一个名为的新库,该库试图非常紧密地镜像熊猫绘图API,同时提供bokeh提供的交互性以及HoloViews的一些更高级的功能(例如,自动刻面、小部件和datashader集成)。要从上面重新创建绘图,您可以执行以下操作:

import bokeh.sampledata.autompg as mpg
import hvplot.pandas

mpg.autompg.hvplot.scatter(
    x='displ', y='hp', by='cyl',
    fields={'hp': 'Horsepower', 'displ': 'Displacement'},
    title='HP vs. DISPL (shaded by CYL)'
)

请注意,在下一版本中,您将能够使用更明确的
xlabel
ylabel
参数替换
字段
参数。

该库是bokeh图表API的一个很好的替代品。但是,由于习惯于命令式绘图API的人对该API非常陌生,我们最近发布了基于一个名为的新库,该库尝试非常紧密地镜像熊猫绘图API,同时提供bokeh提供的交互性以及HoloView的一些更高级功能(例如自动刻面、小部件和数据阴影集成)。要从上面重新创建绘图,您可以执行以下操作:

import bokeh.sampledata.autompg as mpg
import hvplot.pandas

mpg.autompg.hvplot.scatter(
    x='displ', y='hp', by='cyl',
    fields={'hp': 'Horsepower', 'displ': 'Displacement'},
    title='HP vs. DISPL (shaded by CYL)'
)


请注意,在下一个版本中,您将能够用更明确的
xlabel
ylabel
参数替换
字段
参数。

在现代版本的Bokeh中,实现这一点非常简单:

from bokeh.plotting import figure, show
from bokeh.sampledata.iris import flowers as df
from bokeh.transform import factor_cmap

SPECIES = ['setosa', 'versicolor', 'virginica']

p = figure(tooltips="species: @species")
p.scatter("petal_length", "sepal_width", source=df, legend="species", alpha=0.5,
          size=12, color=factor_cmap('species', 'Category10_3', SPECIES))

show(p)

在现代版本的Bokeh中实现这一点非常简单:

from bokeh.plotting import figure, show
from bokeh.sampledata.iris import flowers as df
from bokeh.transform import factor_cmap

SPECIES = ['setosa', 'versicolor', 'virginica']

p = figure(tooltips="species: @species")
p.scatter("petal_length", "sepal_width", source=df, legend="species", alpha=0.5,
          size=12, color=factor_cmap('species', 'Category10_3', SPECIES))

show(p)

非常确定broke.charts刚刚被移动到了推荐@FHTMitchell:True的位置,但holoviews没有我需要的功能…我现在没有时间写完整的答案,但您可能对plotly的python api感兴趣。我希望旧文档能够清楚地表明这是不推荐的…花时间学习g bokeh了解到它不再有这个主要功能了…非常确定broke.charts刚刚被移动到了推荐@FHTMitchell:True的位置,但是holoviews没有我需要的功能…我现在没有时间写出完整的答案,但是你可能对plotly的python api感兴趣。我希望旧文档能够很明显,这是不推荐的…花时间学习bokeh以了解它不再具有此主要功能…这看起来正是我所寻找的!但是,它似乎与Spyder不起作用:我得到
Out[142]::NdOverlay[cyl]:散射[Displacement](马力)
而不是图像。。。(Windows/Python 3.6)是的,它主要设置为在笔记本中工作。但是您应该能够使用:hvplot.show(obj)显示返回的对象不幸的是,这不起作用,但我没有时间进一步调查,因为这看起来是一个有价值的选择,我现在就接受它。这看起来正是我想要的!但是,它似乎与Spyder不起作用:我得到了[142]::NdOverlay[cyl]:分散[位移](马力)而不是图像…(Windows/Python 3.6)是的,它主要设置为在笔记本中工作。但是您应该能够使用:hvplot.show(obj)显示返回的对象不幸的是,这不起作用,但我没有时间进一步调查,因为这看起来是一个有价值的选择,我现在就接受它。谢谢你更新这个问题。我已经更改了“接受的答案”请注意这个问题,因为我认为这是大多数在未来遇到这个问题的人都会寻找的。谢谢你更新这个问题。我已经将“接受答案”标记改为这个问题,因为我认为这是大多数在未来遇到这个问题的人都会寻找的。