Ⅰ python中图例的位置怎么手动调整
1.最近遇到一个问题,关于图例legend如何画在图外的问题,并以适合的比例显示出来。
2.首先传统的做法如下,这种方式并不能满足我的要求,而且是显示在图内。
ax1.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)1
loc表示图例的位置,有多种形式:
‘North’ 图例标识放在图顶端
‘South’ 图例标识放在图底端
‘East’ 图例标识放在图右方
‘West’ 图例标识放在图左方
‘NorthEast’ 图例标识放在图右上方(默认)
‘NorthWest 图例标识放在图左上方
‘SouthEast’ 图例标识放在图右下角
‘SouthWest’ 图例标识放在图左下角12345678
有人说简单,有相同的方式,如下经测试不行,可能是本人用的python版本不行,所用的方式就是和前面一样,采用如下的方式来替换上面的legend位置。
‘NorthOutside’ 图例标识放在图框外侧上方
‘SouthOutside’ 图例标识放在图框外侧下方
‘EastOutside’ 图例标识放在图框外侧右方
‘WestOutside’ 图例标识放在图框外侧左方
‘NorthEastOutside’ 图例标识放在图框外侧右上方
‘NorthWestOutside’ 图例标识放在图框外侧左上方
‘SouthEastOutside’ 图例标识放在图框外侧右下方
‘SouthWestOutside’ 图例标识放在图框外侧左下方
(以上几个将图例标识放在框图外)
‘Best’ 图标标识放在图框内不与图冲突的最佳位置
‘BestOutside’ 图标标识放在图框外使用最小空间的最佳位置1234567891011
bbox_to_anchor:表示legend的位置,前一个表示左右,后一个表示上下。当使用这个参数时。loc将不再起正常的作用,ncol=3表示图例三列显示。
3.有人说要解决这个问题可以采用对坐标轴放大或是缩小的方式,经本人测试可以行,但是,放大缩小的比率不让人满意,且很难控制到适合的位置。有兴趣可以参考链接,最终得出此方法不行。
4.那么就没有办法了吗?NO.NO,请看下面,最终完成如下。
这就是本人要的效果,不废话,具体做法如下
box = ax1.get_position()
ax1.set_position([box.x0, box.y0, box.width , box.height* 0.8])12
首先按上面的方式,如果你想将图例放上面就box.height*0.8,放右边就box.width*0.8其它方式一样。同时配合下面来使用。
ax1.legend(loc='center left', bbox_to_anchor=(0.2, 1.12),ncol=3)1
主要是bbox_to_anchor的使用,自己可以修改参数试下,good luck for you.
阅读全文
版权声明:原创文章,未经博主
Ⅱ 怎么样在python中让最后画出来的图翻转90度
importImage
importos
importglob
dir="f:mobile"
#取出指定文件
file=glob.glob(os.path.join(dir,'xxx.JPG'))
#打开图片
img=Image.open(file)
#显示图片
img.show()
printimg.format,img.size,img.mode
print"rotatingimage....."
im=img.rotate(90)
im.save(image)
我不知道你怎么画的,但旋转请参考以上代码
Ⅲ python 图片移动
#-*-coding:gbk-*-
importImage
importImageDraw
importImageChops
im=Image.new('RGB',(800,600),'white')
im2=Image.open('test.png')
#测试图放画布左边,画布右边底色涂黄
left=(im.size[0]/2-im2.size[0])/2
upper=(im.size[1]-im2.size[1])/2
im.paste(im2,(left,upper))
im.paste('yellow',(im.size[0]/2,0)+im.size)
im.show()
#因要旋转得计算测试图对角线,然后切出
d=int((im2.size[0]**2+im2.size[1]**2)**0.5)
left=(im.size[0]/2-d)/2
upper=(im.size[1]-d)/2
bbox=(left,upper,left+d,upper+d)
cp=im.crop(bbox)
#图底不是黑先做mask再作旋转,
#mask做法不一,按测试图可选取g或b通道
r,g,b=cp.split()
mask=g.point(lambdai:i<250and255)
angle=30
mask=mask.rotate(angle)
cp=cp.rotate(angle)
#利用mask贴在画布右边黄底区内
im.paste(cp,(left+im.size[0]/2,upper),mask)
im.show()
Ⅳ 怎样用python画图
思路:
1. 确定好需要画的图。
2. 创建一个画布,用来画你需要的图。
(1)画布大小,可以使用默认大小,也可以自定义画布大小。
(2)画布背景色bgcolor()。
(3)确定起点位置。
3. 画笔的设置。
(1)画笔的大小,颜色。
(2)画笔运行属性。
二、定义画布参数
importturtleast
t.screensize(width=None,heigh=None,bg=None)#以像素为单位,参数分别为画布的宽,高,背景色
t.screensize()#返回默认大小(400,300)
t.Screen()#也是表示默认画布大小,注意S大写
t.setup(w=0.5,h=0.75,startx=None,starty=None)#w,h为整数是表示像素,为小数时表示占据电脑屏幕的比例
#startx,starty坐标表示矩形窗口左上角顶点的位置,默认为屏幕中心位置
三、定义画笔
1、画笔的状态
在画布上默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向),turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2、画笔的属性
画笔(画笔的属性,颜色、画线的宽度)
(1)turtle.pensize():设置画笔的宽度;
(2)turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green","red",也可以是RGB 3元组;
>>>pencolor('brown')
>>>tup=(0.2,0.8,0.55)
>>>pencolor(tup)
>>>pencolor()
'#33cc8c'
(3)turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
相关推荐:《Python入门教程》
3、绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
(1)画笔运动命令:
(3)全局控制命令:
四、命令详解
turtle.circle(radius,extent=None,steps=None)
描述:以给定半径画圆
参数:
radius(半径);半径为正(负),表示圆心在画笔的左边(右边)画圆;
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps);
举例:
circle(50)#整圆;
circle(50,steps=3)#三角形;
circle(120,180)#半圆
五、绘图举例
(1)菱形太阳花
importturtleast#turtle库是python的内部库,直接import使用即可
defdraw_diamond(turt):
foriinrange(1,3):
turt.forward(100)#向前走100步
希望我的回答对你有帮助
Ⅳ python做三维图结果怎么用鼠标拖动旋转
旋转视角,要根据三角函数计算的,每转动一个角度都需要重新计算,这些都需要实现,之后根据转动的数值传入进去,计算后,重新画图