如何在python中绘制重复文本的计数

时间:2017-02-20 09:52:14

标签: python matplotlib seaborn

我正在尝试使用seaborn和matplotlib绘制我的数据框架,但是得到错误就像无法将字符串转换为浮动。

我的数据如下:

Sub Main()

    Dim qassam As String = "mylove"
    Dim lena As Byte() = System.Text.Encoding.Default.GetBytes(qassam)

    Console.WriteLine(lena)


    Console.ReadLine()


End Sub

对于我迄今为止所尝试的内容:

df_count = df.apply(pd.value_counts) plt.plot(df_count)

其中df_count看起来像

ID     |  Status     | Date | Columns|
-------+-------------+------+--------+
28     |  ACTIVE     |      |        |  
29     |  ACTIVE     |      |        |
49623  |  TERMINATED |      |        |
49624  |  TERMINATED |      |        |
49625  |  TERMINATED |      |        |

尝试执行 |STATUS| -----------+------+ ACTIVE |38537 | TERMINATED |1185 | 时会出现以下错误:

  

+:' int'不支持的操作数类型和' str'

尝试执行sns.barplot(df)时会出现以下错误:

  

ValueError:无法将字符串转换为float:' 12/31/2014 0:00'

我的python绘图似乎很零,请建议。

3 个答案:

答案 0 :(得分:2)

最简单的方法是使用pandas的集成绘图功能 df_count.plot(kind="bar")

这是一个完整的例子:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

cats = np.random.choice(["Active", "Terminated"], 100, p=[0.43, 0.57])
df = pd.DataFrame({"ID": np.arange(100), "Status":cats, "unusedData":np.random.rand(100)})

df_count = df[["Status"]].apply(pd.value_counts) 
df_count.plot(kind="bar")

plt.show()

enter image description here

答案 1 :(得分:1)

我认为你必须指定x和y。请尝试:

sns.barplot(x = df_count.index,y = df_count.Status)

sns.plt.show()

-edit

test.csv:

,STATUS
ACTIVE,38537
TERMINATED,1185

代码:

import pandas as pd
import seaborn as sns

df = pd.read_csv('test.csv', delimiter=',')
df.index.names = ['Type']

sns.barplot(x=df.index,y=df.STATUS)
sns.plt.show()

输出: enter image description here

答案 2 :(得分:0)

最后两个答案是pandasseaborn,这个答案是matplotlib

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"STATUS": ['Active', 'Terminated'], "counts": [38537,1185]})
x_pos = np.arange(df.shape[0])
plt.bar(x_pos, df.counts, align='center', color=['green', 'blue'], alpha=0.5)
plt.xticks(x_pos, df.STATUS)
plt.ylabel('Counts')
plt.title('STATUS')
plt.show()

enter image description here