我有一个这样的数据集:
num gb bw
2.2 green black
3.3 red white
2.2 green black
11.0 red black
etc
我试图提供一个包含4个直方图的子图,其中每个直方图都是一种颜色数据。
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('hw03_problem2.csv' , skiprows=1, names = ['num', 'gb', 'bw'])
#df = df.astype(float)
f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')
df[df.gb == 'green'].num.plot.hist(ax = ax1)
df[df.gb == 'red'].num.plot.hist(ax = ax2)
df[df.bw == 'black'].num.plot.hist(ax = ax3)
df[df.bw == 'white'].num.plot.hist(ax = ax4)
plt.show()
plt.savefig('subplot_for_q2')
我收到此错误:
Empty 'DataFrame': no numeric data to plot
答案 0 :(得分:1)
问题可能出在“ num”列格式。将其转换为浮点图。
类似:
df.num = df.num.astype(float)
答案 1 :(得分:0)
当您阅读excel文件时,您可以直接精确确定col num
的变量类型:
df = pd.read_csv('hw03_problem2.csv' , skiprows=1, names = ['num', 'gb', 'bw'],dtype = {'num': float})