我有一个类似于:
的pandas DataFrameSpecies 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轴上绘制AGREP
和EUPESUS
,将计数1和计数2绘制为y轴。但同样,它不会将字符串绘制为轴名称。
答案 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()
df.set_index('Species').loc[['AGREP', 'EUPESU']].plot()
答案 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()