如何在图中表示布尔数据

How to represent boolean data in graph

如何在综合图表中表示以下数据?尝试使用来自 Pandas 的 group by() 但结果并不全面。 我的目标是展示导致以下组合之间事故最多的原因

pieton  bicyclette  camion_lourd  vehicule
0       0           1             1 
0       1           0             1
1       1           0             0
0       1           1             0
0       1           0             1
1       0           0             1
0       0           0             1
0       0           0             1
1       1           0             0
0       1           0             1

y = df.groupby(['pieton', 'bicyclette', 'camion_lourd', 'vehicule']).size()
y.unstack()

结果:

以下是一些可能对您有所帮助的可视化:

#data analysis and wrangling
import pandas as pd
import numpy as np

# visualization
import matplotlib.pyplot as plt

columns = ['pieton', 'bicyclette', 'camion_lourd', 'vehicule']
df = pd.DataFrame([[0,0,1,1],[0,1,0,1],
                  [1,1,0,0],[0,1,1,0],
                  [1,0,0,1],[0,0,0,1],
                  [0,0,0,1],[1,1,0,0],
                  [0,1,0,1]], columns = columns)

您可以先查看每个类别的事故比例:

# Set up a grid of plots
fig = plt.figure(figsize=(10,10)) 
fig_dims = (3, 2)


# Plot accidents depending on type
plt.subplot2grid(fig_dims, (0, 0))
df['pieton'].value_counts().plot(kind='bar', 
                                     title='Pieton')
plt.subplot2grid(fig_dims, (0, 1))
df['bicyclette'].value_counts().plot(kind='bar', 
                                     title='bicyclette')
plt.subplot2grid(fig_dims, (1, 0))
df['camion_lourd'].value_counts().plot(kind='bar', 
                                     title='camion_lourd')
plt.subplot2grid(fig_dims, (1, 1))
df['vehicule'].value_counts().plot(kind='bar', 
                                     title='vehicule')

给出:

或者如果您愿意:

df.apply(pd.value_counts).plot(kind='bar', 
                                     title='all types')

但是,更有趣的是,我会对每一对进行比较。例如,对于行人:

pieton = {}
for col in columns:
    pieton[col] = np.sum(df.pieton[df[col] == 1])
pieton.pop('pieton', None)
plt.bar(range(len(pieton)), pieton.values(), align='center')
plt.xticks(range(len(pieton)), pieton.keys())
plt.title("Who got an accident with a pedestrian?")
plt.legend(loc='best')
plt.show()

给出:

可以对自行车、卡车和汽车进行类似的绘制,给出:

拥有更多的数据点,以便能够得出更好的结论会很有趣。不过,这还是告诉我们开车要注意自行车!

希望对您有所帮助!