2016-05-12 242 views
0

是否可以将单个值绘制为散点图? 我可以很好地通过使用标记获取ccdfs来绘制它,但我想知道是否有其他替代方法可用?单变量类别散点图熊猫

输入:

输入1

tweetcricscore 51 high active 

输入2

tweetcricscore 46 event based 
tweetcricscore 12 event based 
tweetcricscore 46 event based 

输入3

tweetcricscore 1 viewers 
tweetcricscore 178 viewers 

输入4

tweetcricscore 46 situational 
tweetcricscore 23 situational 
tweetcricscore 1 situational 
tweetcricscore 8 situational 
tweetcricscore 56 situational 

我可以bokehpandas使用xy值有非常多写散点图代码。但在单一价值的情况下?

当所有输入合并为一个输入并将按col[3]分组时,值为col[2]

下面的代码是将数据与2个变量

​​

样本输出

enter image description here

+1

对于scetterplot你说你想拥有如X轴和什么y轴。或者,你可能有一个带有类别/等的“barplot”。名称为x轴。 – MaxU

+0

是的,它很清楚有散点图x和y是需要的。但在这种情况下,我有单变量数据作为不同类别的输出。线和酒吧非常普遍。我试图找到一个更好的可视化类型。 –

+0

@MaxU不绘制条形图的另一个原因是输入范围为1到1000的值 –

回答

1

UPDATE:

看看BokehSeaborn画廊 - 它可以帮助你了解什么样的情节符合您的需求

,你可以尝试violinplot这样的:

sns.violinplot(x="category", y="val", data=df) 

enter image description here

或热图:

import numpy as np 
import pandas as pd 
from bokeh.charts import HeatMap, output_file, show 

cats = ['active', 'based', 'viewers', 'situational'] 
df = pd.DataFrame({'val': np.random.randint(1,100, 1000), 'category': np.random.choice(cats, 1000)}) 

hm = HeatMap(df) 
output_file('d:/temp/heatmap.html') 
show(hm) 
+0

群情如何? –

1

设置你可以尝试boxplotviolinplot。或者,如果您不喜欢这些,只想要点的垂直分布,则可以强制散点图沿着一个x值进行绘图。要做到这一点,你需要创建一个固定值的阵列(比如1),这是相同的长度,你会被绘制数组:

ones = [] 
for range(len(data)): 
    ones.append(1) 

plt.scatter(ones,data) 
plt.show() 

这会给你这样的:

enter image description here

+0

谢谢Grr的解决方案。这不是关于不喜欢线条或条形图。它只是因为它们太常见了,并且想要搜索是否有更多有趣的可视化出现在我应该知道的地方。 –

+0

不绘制条形图的另一个原因是输入范围为1到1000的值 –

+0

群体情节如何? –