Python可视化—Plotly_02_基础

碎语

  • 学习的正态曲线:入门容易,精通难
  • 积累的正态曲线:先越读越多,后越读越少

Plotly画图三步走

  • 离线前置准备
import plotly                     ## 导入包
import plotly.graph_objs as go    ## graph_objs是plotly下的子模块,用于导入plotly中所有的图形对象。导入图形对象之后便可以根据需要呈现的数据和自定义的图形参数来定义一个grapg对象,再导入plotly.offline.iplot()中进行最终的呈现
import plotly.offline as offline  ## 进入离线模式
offline.inti_notebook.mode()      ## 在Jupyter Notebook中显示,如果只想生成一个HTML的链接这步可以省略
  • 可视化组成的部分

图像最终的展现由:数据部分(trace)、背景(布局:layout)部分两部分组成。Plotly分开定义这两部分,然后使用go.Figure组装这两部分,最后使用plotly.offline.iplot(fig)画图:


制图三步走

第一步:定义Trace

根据数据选择你需要的图表,构造一个Trace,以散点图为例:

Trace = go.Scatter(
                x = df.index,#X轴的值,这里取得的是DF的索引,工作中使用的多
                y = df['aa'],#y轴的值,这里取得的是DF的某一列。
                mode = 'markers+lines',#散点的类型,这种事点和线的连接
                market = dict(),#字典,点的设置,大小等等
                name = '',#图例名称
                text = df['aa'],#设置数据标签的值,散点此处的数据标签不会显示,是鼠标放在上面会有显示,所以要想使用显性的数据标签,则需要使用注释
                textposition = 'right',#数据标签的位置
                textfont = dict(size = 100,color = 'black')#数据标签的大小等属性,其属性都放在字典中
                )
data = [Trace] ##把图像放在list中

由于参数太多提供了部分通用的参数,具体个图形的参数,有多不同,我会在后面每一个图形中细聊。

第二步:定义Layout

此步主要是定义布局相关的参数,主要有文字、标题、大小、背景、坐标轴、图例

layout = go.Layout(
                font = dirt(family = 'arial',size = 16 ,color = ''),#用在此处是控制全局的字体字典类型
                title = 'aa',#标题,图像的主标题
                titlefont = dict(family= '',size = '',color = ''),#此处独立控制主标题的字体
                autosize = False,#bool,图像的大小是否自动
                width = 34 ,# int,图像的宽度
                height = 50,# int ,图像的高度
                plot_bgcolor = '',str,背景颜色
                xaxis = dict(
                            title = 'aa',#坐标轴标题
                            titlefont = dict(),#参数与之前一样
                            type = 'category',#str型,用于控制横坐标轴类型,'-'表示根据输入数据自适应调整,'linear'表示线性坐标轴,'log'表示对数坐标轴,'date'表示日期型坐标轴,'category'表示分类型坐标轴,默认为'-'
                            autorange = bool,#bool型或'reversed',控制是否根据横坐标对应的数据自动调整坐标轴范围,默认为True
                            range = [起点,终点],#list型,控制横坐标轴的区间范围,自行设置无默认项,取决于横坐标轴的数据类型,格式均为[左端点,右端点]
                            tickmode = 'auto',#str型,设置坐标轴刻度的格式,'auto'表示自动根据输入的数据来决定,'linear'表示线性的数值型,'array'表示由自定义的数组来表示(用数组来自定义刻度标签时必须选择此项)
                            tickvals=[],#list、numpy array或pandas中的series,作为坐标轴刻度标签的替代(tickmode此时必须被设置为'array')
                            ticks = '',str型,控制刻度标签的书写位置,'outside'表示在外侧显示,'inside'表示在内侧显示,''表示不显示
                            tickfont = dirt(),字典型,同前面所有字典型字体控制参数,用于对刻度标签进行单独控制
                            tickangle = 12,#int型,设置刻度标签的旋转角度
                            showgrid = Ture,#bool型,控制是否绘制出该坐标轴上的直线部分
                            ), #如果要设置第二坐标则使用xaxis2 = dict()      
                showlegend = True,#bool型,控制是否有图例
                legend = dict(
                                x = 1,#int,图例位置的x值
                                y = 2,#int,图例位置的y值
                                font = dict(),#字典型,与前面一样
                                orientation = '',str,设置图例各元素的堆叠方向,'v'表示竖直,'h'表示水平堆叠
                            )            
                )

annotations:给图表加上注释

  • 主要是给数据加上标签,trace中的txet是也是给数据加上标签,但是这个标签只有你鼠标放在相应的点上才会有,不会像Excel中显性的显示。
  • 一般注释都要放在列表中,每一个注释都是有一个字典组成,所以要注释多个点时,最好写循环,然后使用layout['annotations'] = annotations,添加到layout中
annotations = [dict(x = 12,#数值,注释位置x值
                    y = 13,#数值,注释位置y值
                    text = '',str,注释的值
                    font = dict(),#与前面一样
                    showarrow = False,#bool,注释的箭头是否显示
                    )]

第三步:fig:整合图和图层

fig = go.Figure(data = data ,layout = layout)
plotly.offline.ipolt(
                    fig,#fig或者是data
                    show_link = True,#bool,是否显示链接,图右下角
                    link_text = '',#str,链接的名字
                    filename = '',#str,文件夹的名字
                    image = '',#str,图片的类型'None'|'png' |'jpeg' |'svg' |'webp'
                    image_height = 32,#数值,图片的高度
                    image_width = 22 ,#数值,图片的宽度
                    )

结束语

如果我不能让您看懂,那是我的问题,如果有疑问可以关注我,然后私聊我,我会尽最大的努力帮助你

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343