多数据系列
多数据系列的散点图需要使用不同的填充颜色(fill)和数据点形状(shape)这两个视觉特征来表示数据系列;
绘制多数据系列散点图
多数据系列散点图就是在单数据系列上添加新的数据系列;使用不同的填充颜色或形状区分数据系列;
plotnine绘制多数据系列
plotnine包中的geom_point()函数可以根据数据类别映射到不同的填充颜色(fill)与形状(shape),以及边框颜色(color);
matplotlib绘制多数据系列
matplotlib绘图基于二维表,依次使用plt.scatter()函数绘制每个数据系列的散点;导入的数据是二维表,所以需要使用for循环依次求取每个数据系列;然后逐一设定数据系列的格式,绘制语法较为烦琐;
matplotlib绘制
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_csv('e:\python\out\MultiSeriesScatterD.csv')
group=np.unique(df.label_pred)
markers=['o','s']
colors=["#00AFBB", "#FC4E07"]
fig =plt.figure(figsize=(4,4), dpi=100)
for i in range(0,len(group)):
temp_df=df[df.label_pred==group[i]]
plt.scatter(temp_df.x, temp_df.y,
s=40, linewidths=0.5, edgecolors="k",alpha=0.8,
marker=markers[i], c=colors[i],label=group[i])
plt.xlim(-5,10)
plt.ylim(-5,10)
plt.legend(title='group',loc='lower right',edgecolor='none',facecolor='none')
plt.show()
plotnine绘制
import pandas as pd
from plotnine import *
df=pd.read_csv('e:\python\out\MultiSeriesScatterD.csv')
base_plot=(ggplot(df, aes('x','y',shape='factor(label_pred)',fill='factor(label_pred)')) +
geom_point(size=4,colour="black",alpha=0.7)+
scale_shape_manual(values=('s','o'))+
scale_fill_manual(values=("#00AFBB", "#FC4E07"))+
labs(x = "Axis X",y="Axis Y")+
scale_y_continuous(limits =(-5, 10))+
scale_x_continuous(limits = (-5, 10))+
theme(
axis_title=element_text(size=18,face="plain",color="black"),
axis_text = element_text(size=16,face="plain",color="black"),
aspect_ratio =1,
figure_size = (5,5),
dpi = 100
)
)
print(base_plot)