"ValueError: could not convert string to float" with Python ggplot library when making scatter plot
"ValueError: could not convert string to float" with Python ggplot library when making scatter plot
下面是一个名为 'grouped' 的 pandas 数据框。我想用 X 上的 Dayn 和 Y 上的 ENTRIESn_hourly 制作散点图。我可以制作条形图没问题,但是当我尝试制作散点图时出现此错误:ValueError:无法转换要浮动的字符串:星期五。
Dayn rain ENTRIESn_hourly
0 Fri 0 1336.012020
1 Fri 1 1327.224794
2 Mon 0 1195.493274
etc.
代码
plot = ggplot(grouped, aes('Dayn','ENTRIESn_hourly')) + \
geom_point() + \
ggtitle("Entries per day") + \
xlab("Day of week") + \
ylab("Average entries (millions)")
return plot
散点图非常适合比较两个数字,但您正试图传递一个字符串 (Dayn) 和一个数字。在这种情况下,条形图或折线图可能是更好的选择
错误很明显:
aes('Dayn','ENTRIESn_hourly'))
Dayn是string类型,ENTRIESn_hourly是float类型。 ggplot 的散点图的实现期望散点图有 2 个浮点数(否则它不会显示此错误)。条形图不是这种情况。散点图用于比较两个值。
如前所述,散点图需要 x
和 y
的 float
数据。解决此问题但仍保持 "scatter" 样图的一种方法是使用 matplotlib
.
中的 pyplot
将折线图格式化为看起来类似于散点图
例如这样的事情:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,9,16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()
'ro'
描述了数据点的样式,在本例中是红点。所以你有一个折线图,在某种程度上类似于散点图。以上代码生成以下图表:
在您的情况下,您可能需要类似于:
plt.plot(your_dataframe['Dayn'], your_dataframe['ENTRIESn_hourly'], 'ro')
下面是一个名为 'grouped' 的 pandas 数据框。我想用 X 上的 Dayn 和 Y 上的 ENTRIESn_hourly 制作散点图。我可以制作条形图没问题,但是当我尝试制作散点图时出现此错误:ValueError:无法转换要浮动的字符串:星期五。
Dayn rain ENTRIESn_hourly
0 Fri 0 1336.012020
1 Fri 1 1327.224794
2 Mon 0 1195.493274
etc.
代码
plot = ggplot(grouped, aes('Dayn','ENTRIESn_hourly')) + \
geom_point() + \
ggtitle("Entries per day") + \
xlab("Day of week") + \
ylab("Average entries (millions)")
return plot
散点图非常适合比较两个数字,但您正试图传递一个字符串 (Dayn) 和一个数字。在这种情况下,条形图或折线图可能是更好的选择
错误很明显:
aes('Dayn','ENTRIESn_hourly'))
Dayn是string类型,ENTRIESn_hourly是float类型。 ggplot 的散点图的实现期望散点图有 2 个浮点数(否则它不会显示此错误)。条形图不是这种情况。散点图用于比较两个值。
如前所述,散点图需要 x
和 y
的 float
数据。解决此问题但仍保持 "scatter" 样图的一种方法是使用 matplotlib
.
pyplot
将折线图格式化为看起来类似于散点图
例如这样的事情:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,9,16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()
'ro'
描述了数据点的样式,在本例中是红点。所以你有一个折线图,在某种程度上类似于散点图。以上代码生成以下图表:
在您的情况下,您可能需要类似于:
plt.plot(your_dataframe['Dayn'], your_dataframe['ENTRIESn_hourly'], 'ro')