Python 以字符串作为x轴打印数据
我在pandas数据框中有以下数据集,在x轴上绘制Python 以字符串作为x轴打印数据,python,matplotlib,scatter-plot,Python,Matplotlib,Scatter Plot,我在pandas数据框中有以下数据集,在x轴上绘制timeOfDay,在y轴上绘制Wattage时遇到问题。基本上,我试图绘制一个散点图(plt.scatter),x轴上有3个点(上午、下午、晚上),以及它们各自的瓦特数,位于时间上方 因此,Morning将有三个数据点位于其上方,午后将有其数据点位于其上方,依此类推 Wattage time_stamp timeOfDay 0 100 2015-02-24 10:00:00 Morning 1
timeOfDay
,在y轴上绘制Wattage
时遇到问题。基本上,我试图绘制一个散点图(plt.scatter
),x轴上有3个点(上午、下午、晚上),以及它们各自的瓦特数
,位于时间
上方
因此,Morning
将有三个数据点位于其上方,午后
将有其数据点位于其上方,依此类推
Wattage time_stamp timeOfDay
0 100 2015-02-24 10:00:00 Morning
1 120 2015-02-24 11:00:00 Morning
2 104 2015-02-24 12:00:00 Morning
3 105 2015-02-24 13:00:00 Afternoon
4 109 2015-02-24 14:00:00 Afternoon
5 120 2015-02-24 15:00:00 Afternoon
6 450 2015-02-24 16:00:00 Afternoon
7 200 2015-02-24 17:00:00 Evening
8 300 2015-02-24 18:00:00 Evening
9 190 2015-02-24 19:00:00 Evening
10 100 2015-02-24 20:00:00 Evening
11 110 2015-02-24 21:00:00 Evening
您可以使用以下方法:
如果您已经有了一个包含数据的数据框,您可以很容易地使用,这使它成为一行:
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
w = [100,123,156,90,40,320,198,174,175,146,238,120]
m = ["morning"]*4+ ["noon"]*4+["evening"]*4
df = pd.DataFrame({"Wattage" : w, "timeOfDay":m})
sns.swarmplot(x="timeOfDay", y="Wattage", data=df)
plt.show()
可以将上午
、下午
和晚上
分别转换为0、1和2。然后将这些数字绘制为X,将瓦数绘制为Y
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
w = [100,123,156,90,40,320,198,174,175,146,238,120]
m = ["morning"]*4+ ["noon"]*4+["evening"]*4
df = pd.DataFrame({"Wattage" : w, "timeOfDay":m})
sns.swarmplot(x="timeOfDay", y="Wattage", data=df)
plt.show()