Matplotlib
绘图格式
import matplotlib.pyplot as plt
%matplotlib inline
# 定义图像和大小
fig = plt.figure(figsize=(9, 6))
# 添加子图
ax = fig.add_subplot(1,1,1)
# 标题
ax.set_title('title')
# 图例
ax.legend(loc="best")
# 图例背景颜色
legend.get_frame().set_facecolor('#FFFFFF')
# 标签
ax.text(2005, 87, 'Men')
plt.show()
plt.savefig('path')
坐标轴设置
# 坐标轴标题
ax.set_ylabel('Rating Source')
ax.set_xlabel('Average Rating')
# 坐标范围
ax.set_xlim(-0.015, 1.515)
ax.set_ylim(-0.01, 1.01)
# 坐标位置和刻度值
ax.set_xticks([0, 0.3, 0.4, 1.0, 1.5])
ax.set_xticklabels([0.0, "", "", 1.0, 1.5])
# 刻度线样式
ax.tick_params(axis='both',which='major',labelsize=14)
# 不显示刻度线
for key,spine in ax.spines.items():
spine.set_visible(False)
# 设置双坐标轴,右侧Y轴
ax2=ax1.twinx()
# 设置Y轴显示百分数
fmt='%.2f%%'
yticks = mtick.FormatStrFormatter(fmt)
# 时间刻度显示格式
import matplotlib.dates as mdates
ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:%M%S'))
# 时间间隔
plt.xticks(pd.date_range(data.index[0],data.index[-1],freq='3M'))
plt.xticks(rotation=90)
or
from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY
#获取每月一日数据
monthdays = MonthLocator()
#获取每周一的日期数据
mondays = WeekdayLocator(MONDAY)
#获取每日数据
alldays = DayLocator()
xs = [datetime.strptime(d, '%m/%d/%Y').date() for d in dates]
ys = range(len(xs))
# 配置横坐标
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.plot(xs, ys)
绘图类型
# 折线图
plt.plot(x, y)
# 柱状图
plt.bar(x, y)
# 散点图
plt.scatter(x, y)
# 直方图
plt.hist(x, n)
Seaborn
绘图格式
import seaborn as sns
# 5种主题风格:darkgrid,whitegrid,dark,white,ticks
sns.set_style("whitegrid")
#指定域设定风格
with sns.axes_style("darkgrid"):
plt.subplot(211)
sinplot()
# 图样式
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
#圆形画板平均分割8份
sns.palplot(sns.color_palette("hls", 8))
# 颜色的亮度和饱和
sns.hls_palette(8, l=.7, s=.9)
# 连续色板
sns.color_palette("Blues")
坐标轴设置
#轴离图的距离
sns.despine(offset=10)
#保留左轴
sns.despine(left=True)
绘图类型
# 直方图
sns.distplot(x, bins=20, kde=False)#分成20块
# 数据分布情况
# 单特征
x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)
# 两特征
sns.jointplot(x="x", y="y", data=df)
#分布区域密集度图
x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("white"):
sns.jointplot(x=x, y=y, kind="hex", color="k")
# 特征分布
sns.pairplot(iris)
# 回归
sns.regplot(x="total_bill", y="tip", data=tips)
sns.lmplot(x="total_bill", y="tip", data=tips)
# 树形图
sns.swarmplot(x="total_bill", y="day", hue="time", data=tips)
# 盒图
sns.boxplot(x="day", y="total_bill", hue="time", data=tips)
# 小提琴图
sns.violinplot(x="total_bill", y="day", hue="time", data=tips)
# 条形图
sns.barplot(x="sex", y="survived", hue="class", data=titanic)
# 点图
sns.pointplot(x="sex", y="survived", hue="class", data=titanic)
# 箱型图
sns.boxplot(data=iris,orient="h")
# 热图
sns.heatmap(flights)