在matplotlib中将字符串绘制为轴

时间:2015-07-20 18:15:00

标签: python pandas matplotlib

我有一个类似于:

的pandas DataFrame
Species  Count1 Count2 
AGREP      2       10
GYLEP      4       6
POAPRA     2       8
EUPESU     1       11

我想制作一个物种与第1号的线图,其中x轴为物种,y轴为Count 1.

我尝试使用代码:

import matplotlib.pyplot as plt
plt.plot(df.Species,df.Count1)

但这会返回错误:

ValueError: could not convert string to float

我想最终只选择某些物种来对抗两种情况。例如,我想在x轴上绘制AGREPEUPESUS,将计数1和计数2绘制为y轴。但同样,它不会将字符串绘制为轴名称。

2 个答案:

答案 0 :(得分:1)

您可以将这些字符串设置为索引,只需使用pandas.DataFrame .plot方法。

import pandas as pd

# your data
# ===================================

df


  Species  Count1  Count2
0   AGREP       2      10
1   GYLEP       4       6
2  POAPRA       2       8
3  EUPESU       1      11


# plot
# ===================================
df.set_index('Species').plot()

enter image description here

df.set_index('Species').loc[['AGREP', 'EUPESU']].plot()

enter image description here

答案 1 :(得分:0)

您可以像这样在图中设置特定列

import pandas as pd  
  
# assign data of lists.  
data = {'Species': ['AGREP', 'GYLEP', 'POAPRA', 'EUPESU'],
 'Count1': [2, 4, 2, 1],
 'Count2': [10, 6, 8, 11]}  
  
# Create DataFrame  
df = pd.DataFrame(data)  
df

# Output
  Species  Count1  Count2
0   AGREP       2      10
1   GYLEP       4       6
2  POAPRA       2       8
3  EUPESU       1      11

# Plot Count1 column while index is Species
df.set_index('Species')['Count1'].plot()

Plot Count1 column while index is Species