Python基础之画图

写在前面

Python中画图是很大一块内容,我在学数据分析过程中,认为最常用的图分为以下几四种

i、数据探索找特征相关性和散点图

ii、数据清洗箱线图

iii、趋势分析、分布分析等

iv、数据偏度和正态分布情况

常用图包括:scatter plot散点图, boxplot箱线图, heatmap热力图, bar/line/hist/pie 形图

为了阻止notebook出现提示文字,在绘图语句最后加上“ ; ”

基本要素

图的基本要素包括figsize, axis label, tick label 轴的刻度, title, legend

a=np.linspace(-10,10,200)
x_ticks=[]
b=list(map(lambda x: x_ticks.append(x), range(-10,11)))
print(x_ticks)
y=np.sin(a)
#构建一个图
#首先定义figure对象(图需要多大)
plt.figure(figsize=(6,3))
#然后说明x,y取值,
plt.plot(a,y,linestyle=':')
plt.xlabel('x取值')
plt.ylabel('y值')
plt.title('正弦函数')
plt.xticks(x_ticks);

xticks还可以展示月份

#通过xticks还可以展示月份、小时、string等
import calendar
a=range(1,13,1)
y=np.sqrt(a)+np.log(a)+5
plt.figure(figsize=(6,3))
plt.plot(a,y,linewidth=2,color='green')
plt.xlabel('月份')
plt.ylabel('y值')
plt.title('线性函数')
plt.xticks(a,calendar.month_name[1:13],color='black',rotation=60);

subplot

subplot是一个同时展示多个图形的功能,可以很直观看到特征之间的相关特性。比如在做分类问题时,查看特征与应变量的相关关系或者特征本身属性可以使用subplot。

team=pd.read_excel('team.xlsx')
team.head(1)
plt.figure(figsize=(15,15))
fig,axes=plt.subplots(2,2,sharex=True)
team.plot(x='name',y='Q1',ax=axes[0,0],colormap='cividis')
team.plot(x='name',y='Q2',ax=axes[0,1],colormap='cividis')
team.plot(x='name',y='Q3',ax=axes[1,0],colormap='cividis')
team.plot(x='name',y='Q4',ax=axes[1,1],colormap='cividis')
axes[0,0].set_title('Q1')
axes[0,1].set_title('Q2')
axes[1,0].set_title('Q3')
axes[1,1].set_title('Q4');

team文件是统计了几个队伍的队员们在Q1~Q4的得分情况的表,这里用subplot展示其得分波动性。

 subplot还有另一种方法展示

x=np.linspace(1,11,10)
ax1=plt.subplot(2,2,1)
plt.plot(x,np.sin(x),color='k')

ax2=plt.subplot(2,2,2,sharey=ax1)
plt.plot(x,np.cos(x),color='g')

ax3=plt.subplot(2,2,3)
plt.plot(x,x,color='r')

ax4=plt.subplot(2,2,4,sharey=ax3)
plt.plot(x,x*2,color='y')

scatter_matrix

使用scatter_matrix可以更轻松达到和subplot类似效果

df=pd.DataFrame(np.random.randn(100,4),columns=['a','b','c','d'])
pd.plotting.scatter_matrix(df,figsize=(8,6),marker='o',
                           diagonal='kde',alpha=0.4,range_padding=0.05);
#scatter_matrix中diagonal可选kde曲线和hist柱状图,range_padding是图像在x轴y轴原点附近留白
#sns有个类似的pairplot可以用

bar/line/pie/hist

在做对比分析、趋势分析时,常用柱状图表示分层分布,常用histogram图体现各区间频率,常用折线图展现某个特征一段时间的波动趋势,常用饼图展示在各业务组成的贡献比例。

#简易Bar
x=np.arange(10)
y=np.random.randint(0,20,10)
plt.bar(x,y)#plt.bar是bar graph调用函数
plt.xticks(x);

 也可以做成对比图或者堆叠图

#对比图
df=pd.DataFrame(np.random.rand(10,3),columns=['a','b','c'])
df.plot(kind='bar',grid=True,colormap='cividis')
plt.title('df')
plt.legend()

#stacked
df.plot(kind='bar',grid=True,colormap='BuGn_r',stacked=True)

hist

#hist频率直方图
#hist 是画(频率分布)直方图,x 轴表示这一列数据的种类,y 轴表示该类别出现的次数(频数);bar 是画柱状图。
#hist 直方图展示的是数据的分布,bar 柱状图展示的数据本身的大小。
a=pd.Series(np.random.randn(1000))
a.hist(bins=100,histtype='bar',align='mid',orientation='vertical',alpha=0.5)

line

y=[]
test=list(map(lambda x: y.append(x), range(0,31)))
y=pd.Series(y)
y
x=pd.DataFrame(np.exp(y)).rename(columns={0:'exp'})
x
plt.figure(figsize=(5,2))
x.plot(linewidth='2')
plt.title('line graph')
plt.legend(loc='upper left');
import warnings
warnings.filterwarnings('ignore');

pie

饼图中labels是各块饼的名称,colors是颜色,explode是定义哪几块需要炸开,autopct可以定义比例以小数还是百分比展示

a=np.array([35,25,25,15])
plt.pie(a,labels=['a','b','c','d'],colors=['yellowgreen','gold','lightblue','coral'],
        explode=(0,0.1,0,0),autopct='%.2f%%')
plt.title('Pie chart')

scatter plot

用于直观展现两个变量之间可能存在的线性相关关系

x=np.random.randn(50)
y=np.random.randn(50)
plt.scatter(x,y)
plt.xlabel('x取值')
plt.ylabel('y值')
plt.title('scatter')
plt.legend();

 

box plot

box plot是处理异常数据时(如果数据不近似符合正态分布时)最常用的处理方式。

np.random.seed(1234)
data=np.random.normal(size=1000,loc=0,scale=1)
plt.boxplot(data);

 heatmap

在数据探索过程中,需要查看各个特征变量之间的correlation,常用seaborn的heatmap功能直观体现。

#heatmap中特征必须均为数值型
team=pd.read_excel('team.xlsx')
team=pd.DataFrame(team)
team=pd.get_dummies(team,columns=['team'])
team=team.drop('name',axis=1)
corr=team.corr()
plt.figure(figsize=(6,6))
sns.heatmap(data=corr,annot=True,cmap='summer_r');
#注意:heatmap中的特征必须均为数值型

如上简单记录了在数据分析过程中,常用画图函数的方法。作为学习过程记录

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python中的turtle模块是一个绘图工具,可以用来绘制各种图形,包括线条、圆形、矩形等等。以下是turtle模块的基础操作: 1. 导入turtle模块 ```python import turtle ``` 2. 创建一个画布 ```python turtle.setup(width, height, startx, starty) ``` 3. 创建一个画笔 ```python pen = turtle.Turtle() ``` 4. 移动画笔 ```python pen.forward(distance) # 向前移动 pen.backward(distance) # 向后移动 pen.right(angle) # 向右旋转 pen.left(angle) # 向左旋转 ``` 5. 改变画笔的属性 ```python pen.color(color) # 改变画笔颜色 pen.pensize(size) # 改变画笔大小 pen.speed(speed) # 改变画笔速度 ``` 6. 绘制图形 ```python pen.circle(radius) # 绘制圆形 pen.dot(size) # 绘制点 pen.stamp() # 绘制当前画笔的形状 pen.penup() # 抬起画笔 pen.pendown() # 放下画笔 ``` 以上是turtle模块的基础操作,可以用来绘制各种图形。 ### 回答2: turtle作为Python的标准库之一,是一个简单易用的画图工具。这个库模拟海龟绘图系统,绘制线条和形状,支持全面的图形用户界面(GUI)交互。下面就是Python画图turtle基础操作的详细步骤: 1.导入turtle模块 在Python中使用turtle库,首先要导入turtle模块: import turtle 2.创建画布 使用turtle的Screen方法创建出一个画布,即一个可视化窗口: screen = turtle.Screen() 3.创建画笔 turtle.Turtle()可以创建一个新的画笔: pen = turtle.Turtle() 这条语句会创建一个默认的画笔。 4.绘制基本图形 主要的画图方法如下: pen.forward(distance) #向画布的正方向移动指定距离 pen.backward(distance) #向画布的相反方向移动指定距离 pen.right(degree) #向右旋转指定角度 pen.left(degree) #向左旋转指定角度 pen.goto(x, y) #移动画笔到给定的坐标 pen.color(color) #修改画笔的颜色 pen.width(width) #修改画笔的宽度 pen.circle(radius) #画出一个半径为radius的圆 同时,使用pen.pendown()和pen.penup()命令可以控制画笔的起伏。pen.pendown()使画笔落下时,它开始绘制;而pen.penup()使其离开画布,以便移动而不绘制任何东西。 5.隐藏画笔 隐藏turtle画笔的默认箭头,可以使用: turtle.hideturtle() 程序将在窗口中使用透明色彩绘制图像。 6.改变背景和画笔颜色 使用下面的语句中的任何一个,可以更改绘图窗口和线条颜色: turtle.bgcolor("black") pen.color("blue") 这是turtle库里两个常用的函数来控制颜色以使绘图窗口看起来更加美观。 例如,给出下面的代码: import turtle pen = turtle.Turtle() pen.forward(100) pen.right(90) pen.forward(100) turtle.mainloop() 这个程序会创建一个小窗口,通过使用pen.forward()和pen.right()来绘制一条线段,运行后会画出一个直角三角形。 综上所述,turtle库是Python的一个重要作品。使用turtle,实现图形的绘制,可以让大家快乐学习和清晰明了地理解数学的字谜。同样的,还可以使用turtle绘制各种各样的有趣的图片。如果想要更深入地了解Python画图turtle基础操作,可以进一步探索更多高级用法。 ### 回答3: Python中的turtle库是一个非常有趣的图形化模块,它可以让我们写出非常漂亮的图形,并且非常容易上手。这个库是采用海龟绘图的方式来实现的,即我们可以通过代码来控制一个小海龟来绘制图形。下面是一些turtle基础操作的介绍。 一、turtle的基本命令 在Python中,我们可以通过以下的代码来导入turtle库: import turtle 然后我们就可以开始一些基本的命令了。turtle库中有一些基本的命令,如下: turtle.forward(distance):向前移动一定距离(默认为像素)。 turtle.backward(distance):向后移动一定距离(默认为像素)。 turtle.right(angle):向右转动一定角度。 turtle.left(angle):向左转动一定角度。 turtle.penup():抬起画笔,即不绘制轨迹。 turtle.pendown():落下画笔,即绘制轨迹。 turtle.speed(speed):设置笔画的速度。 turtle.color(color):设置画笔的颜色。 turtle.pensize(size):设置画笔的宽度。 二、turtle的基本图形 turtle库可以绘制出很多种不同的图形,下面介绍一些常见的基本图形。 1. 线条 我们可以使用turtle库来绘制出任意形状的曲线和直线,只需要使用turtle.forward()函数即可。例如,下面的代码可以画出一条直线: import turtle t = turtle.Turtle() t.forward(100) 2. 圆形 我们可以使用turtle库来绘制出任意大小的圆形,只需要使用turtle.circle()函数即可。例如,下面的代码可以画出一个半径为50的圆形: import turtle t = turtle.Turtle() t.circle(50) 3. 正方形 我们可以使用turtle库来绘制出正方形,只需要使用turtle.forward()和turtle.right()函数即可。例如,下面的代码可以画出一个边长为100的正方形: import turtle t = turtle.Turtle() for i in range(4): t.forward(100) t.right(90) 4. 三角形 我们可以使用turtle库来绘制出三角形,只需要使用turtle.forward()和turtle.right()函数即可。例如,下面的代码可以画出一个边长为100的等边三角形: import turtle t = turtle.Turtle() for i in range(3): t.forward(100) t.right(120) 五、总结 Python中的turtle库非常有趣,可以让我们创造出非常美丽的图形。通过本文的介绍,我们可以学习到turtle库的一些基本命令和基本图形。这些都是Python绘图的基础,希望大家可以学习好它们,为以后更加丰富的图形编写打下基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值