精华内容
下载资源
问答
  • 柱状图、水平条形图、折线图等等,在python的matplotlib库分别可用bar、barh、plot函数来构建它们,再使用xticks与yticks(设置坐标轴刻度)、xlabel与ylabel(设置坐标轴标签)、title(标题)、legend(图例)、...

    当我们获取完数据之后,一般来说数据可视化呈现的最基础图形就是:柱状图、水平条形图、折线图等等,在python的matplotlib库中分别可用bar、barh、plot函数来构建它们,再使用xticks与yticks(设置坐标轴刻度)、xlabel与ylabel(设置坐标轴标签)、title(标题)、legend(图例)、xlim与ylim(设置坐标轴数据范围)、grid(设置网格线)等命令来装饰图形,让它更明晰与美观,但是对于数据标签(即在图形中的每一个点或条形位置上标注出相应数值),却没有直接的命令导出。我们看很多python可视化做出的柱状图等等,在柱子数量不多的条件下,没有数据标签,只有光秃秃的一个个柱子,这样就使得图形缺了些什么。事实上,在python的matplotlib中有在图形中添加文字说明的命令——text,我们就可以利用这个命令,在图中每个单位要素中添加相应文字,来构造数字标签。

    以本人专栏知乎专栏写的《大数据时代,哪些课程最受欢迎?》所爬取数据为例,经过numpy得到了不同课程类别下的平均学习人数,如图:

    5ae17ace7984

    v2-436583cccc6aaf0b95703e570b42cf45_b.png

    plt.figure(figsize=(10,6))

    #设置x轴柱子的个数

    x=np.arange(14)+1 #课程品类数量已知为14,也可以用len(ppv3.index)

    #设置y轴的数值,需将numbers列的数据先转化为数列,再转化为矩阵格式

    y=np.array(list(ppv3['numbers']))

    xticks1=list(ppv3.index) #构造不同课程类目的数列

    #画出柱状图

    plt.bar(x,y,width = 0.35,align='center',color = 'c',alpha=0.8)

    #设置x轴的刻度,将构建的xticks代入,同时由于课程类目文字较多,在一块会比较拥挤和重叠,因此设置字体和对齐方式

    plt.xticks(x,xticks1,size='small',rotation=30)

    #x、y轴标签与图形标题

    plt.xlabel('课程主题类别')

    plt.ylabel('number')

    plt.title('不同课程类别的平均学习人数')

    **#设置数字标签**

    **for a,b in zip(x,y):**

    ** plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)**

    #设置y轴的范围

    plt.ylim(0,3700)

    plt.show()

    最终得到的图形为:

    5ae17ace7984

    不同类别学习人数.png

    着重讲一下如何设置数字标签

    #设置数字标签

    for a,b in zip(x,y):

    plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)

    首先,前边设置的x、y值其实就代表了不同柱子在图形中的位置(坐标),通过for循环找到每一个x、y值的相应坐标——a、b,再使用plt.text在对应位置添文字说明来生成相应的数字标签,而for循环也保证了每一个柱子都有标签。

    其中,a, b+0.05表示在每一柱子对应x值、y值上方0.05处标注文字说明, '%.0f' % b,代表标注的文字,即每个柱子对应的y值, ha='center', va= 'bottom'代表horizontalalignment(水平对齐)、verticalalignment(垂直对齐)的方式,fontsize则是文字大小。

    条形图、折线图也是如此设置,饼图则在pie命令中有数据标签的对应参数。对于累积柱状图、双轴柱状图则需要用两个for循环,同时通过a与b的不同加减来设置数据标签位置,比如在本文另一文章[《双十一预售战下的电商风云》](https://zhuanlan.zhihu.com/p/23492721

    ) ,如图:

    5ae17ace7984

    电商平台商品评价.png

    其命令为:

    5ae17ace7984

    电商代码.png

    展开全文
  • 对于前面示例的折线图,我们必须查看代码来了解描述的是哪种函数。 为方便起见,应在绘图提供此信息。 图例(Legend)常在地图使用。 Legend用来描述地图的图形语言或符号系统。 Matplotlib可以使用图例来解释...

    8.添加图例

    对于前面示例的折线图,我们必须查看代码来了解描述的是哪种函数。 为方便起见,应在绘图中提供此信息。
    图例(Legend)常在地图中使用。 Legend用来描述地图的图形语言或符号系统。
    在这里插入图片描述

    Matplotlib可以使用图例来解释图中函数或值的代表的含义。

    在下面的简单示例中演示如何在图形上放置图例。 图例包含一个或多个entries。 每个entry都包含一个键(key)和一个标签(label)。

    pyplot 函数
    legend(*args, **kwargs)
    用来在轴上放置一个图例

    # next line only needed if working with "ipython notebook":
    import numpy as np
    import matplotlib.pyplot as plt
    ax = plt.gca()
    ax.plot([1, 2, 3, 4])
    ax.legend(['A simple line'])
    plt.show()
    

    在这里插入图片描述
    如果向plot函数添加一个标签(label),该值将用作legend命令中的标签。 legend函数还需要的参数是位置参数“loc”:

    import numpy as np
    import matplotlib.pyplot as plt
    x = np.linspace(0, 25, 1000)
    y1 = np.sin(x)
    y2 = np.cos(x)
    plt.plot(x, y1, '-b', label='sine')
    plt.plot(x, y2, '-r', label='cosine')
    plt.legend(loc='upper left')
    plt.ylim(-1.5, 2.0)
    plt.show()
    
    import numpy as np
    import matplotlib.pyplot as plt
    X = np.linspace(0, 25, 1000)
    F1 = np.sin(0.5 * X)
    F2 = 3 * np.cos(0.8*X)
    plt.plot(X, F1, label="$sin(0.5 * x)$")
    plt.plot(X, F2, label="$3 sin(x)$")
    plt.legend(loc='upper right')
    plt.show()
    

    在这里插入图片描述

    在许多情况下,我们不知道在plot之前结果可能是什么样子。 例如,legend将使线条的重要部分蒙上阴影。 如果不知道数据的显示情况,最好使用’best’作为loc的参数。 Matplotlib将自动尝试为图例找到最佳位置:

    import numpy as np
    import matplotlib.pyplot as plt
    X = np.linspace(0, 25, 1000)
    F1 = np.sin(0.5 * X)
    F2 = 3 * np.cos(0.8*X)
    plt.plot(X, F1, label="$sin(0.5 * x)$")
    plt.plot(X, F2, label="$3 sin(x)$")
    plt.legend(loc='best')
    plt.show()
    

    再次运行的时候,发现图例可能会到左上角。在以下两个示例中可以看到 loc ='best’能很好地工作:

    import numpy as np
    import matplotlib.pyplot as plt
    X = np.linspace(-2 * np.pi, 2 * np.pi, 70, endpoint=True)
    F1 = np.sin(0.5*X)
    F2 = -3 * np.cos(0.8*X)
    plt.xticks( [-6.28, -3.14, 3.14, 6.28],
            [r'$-2\pi$', r'$-\pi$', r'$+\pi$', r'$+2\pi$'])
    plt.yticks([-3, -1, 0, +1, 3])
    plt.plot(X, F1, label="$sin(0.5x)$")
    plt.plot(X, F2, label="$-3 cos(0.8x)$")
    plt.legend(loc='best')
    plt.show()
    

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    X = np.linspace(-2 * np.pi, 2 * np.pi, 70, endpoint=True)
    F1 = np.sin(0.5*X)
    F2 = 3 * np.cos(0.8*X)
    plt.xticks( [-6.28, -3.14, 3.14, 6.28],
            [r'$-2\pi$', r'$-\pi$', r'$+\pi$', r'$+2\pi$'])
    plt.yticks([-3, -1, 0, +1, 3])
    plt.plot(X, F1, label="$sin(0.5x)$")
    plt.plot(X, F2, label="$3 cos(0.8x)$")
    plt.legend(loc='best')
    plt.show()
    

    在这里插入图片描述

    8.1.添加标题(Adding a Title)

    使用函数pyplot.title(label, fontdict=None, loc=None, pad=None, **kwargs) 可为绘图设置标题。

    import matplotlib.pyplot as plt
    days = list(range(1,9))
    celsius_values = [25.6, 24.1, 26.7, 28.3, 27.5, 30.5, 32.8, 33.1]
    plt.plot(days, celsius_values)
    plt.xlabel('Day')
    plt.ylabel('Degrees Celsius')
    plt.title('Change of Celsius Degrees', size=11)
    plt.show()
    

    在这里插入图片描述

    展开全文
  • 实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用...
  • 全书分为7章,首先介绍图表制作经常使用的各种技巧,然后分别介绍交互式图表、高级图表、图表自动化和趣味图表的制作及使用技巧,最后介绍如何将图形应用到excel图表以及图表制作的误区等内容。 本书内容丰富...
  • 5.2 从图中读出它们的关系 5.2.1 从标题多少分析图解 5.2.2 从类型思考图解的制作 5.3 体现特征要素--环绕型图解实例 5.3.1 6个主题的环绕型图解 5.3.2 多个主题的立体环绕型图解 5.4 相互关联--旋转型图解实例 ...
  • 0322 在程序中如何为条形码控件赋值 168 5.8 MSChart控件 168 0323 如何通过代码将MSChart控件关联到MSADODC控件上 168 0324 如何修改MSChart控件的字体和颜色 168 0325 显示柱型 168 0326 显示柱型...
  • metrics-box :一个框,显示一系列数据点的折线图(如PuppetDB仪表板所示) sortable-table :一个简单的表,使用reagent库构建。 取得代表表数据的地图列表,将其分配给试剂原子,然后将表绑定到原子。 该小部件...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    8 <br>0018 有效利用Visual Studio 2005附带程序 8 <br>0019 有效使用MSDN帮助 9 <br>0020 如何设置MSDN帮助 9 <br>1.4 其他 10 <br>0021 如何添加项目引用 10 <br>0022 如何添加Web...
  • 实例229 将数据表的字段添加到ComboBox控件 实例230 在ComboBox下拉列表显示图片 实例231 用ComboBox控件制作浏览器网址输入框 实例232 实现带查询功能的ComboBox控件 11.4 RichTextBox控件应用 实例233...
  • 实例229 将数据表的字段添加到ComboBox控件 实例230 在ComboBox下拉列表显示图片 实例231 用ComboBox控件制作浏览器网址输入框 实例232 实现带查询功能的ComboBox控件 11.4 RichTextBox控件应用 实例233...
  • 实例229 将数据表的字段添加到ComboBox控件 实例230 在ComboBox下拉列表显示图片 实例231 用ComboBox控件制作浏览器网址输入框 实例232 实现带查询功能的ComboBox控件 11.4 RichTextBox控件应用 实例233...
  • 实例168 在Table控件显示标题 271 实例169 为TextBox控件设置热键 272 第6章 ASP.NET安全验证控件 274 6.1 通信类验证 275 实例170 验证电子邮件地址 275 实例171 验证网址输入格式 276 实例172 验证电话号码 277 ...
  • 实例168 在Table控件显示标题 271 实例169 为TextBox控件设置热键 272 第6章 ASP.NET安全验证控件 274 6.1 通信类验证 275 实例170 验证电子邮件地址 275 实例171 验证网址输入格式 276 实例172 验证电话号码 277 ...
  • 实例168 在Table控件显示标题 271 实例169 为TextBox控件设置热键 272 第6章 ASP.NET安全验证控件 274 6.1 通信类验证 275 实例170 验证电子邮件地址 275 实例171 验证网址输入格式 276 实例172 验证电话号码 277 ...
  •  实例106 向班级集合中添加学生信息 126  实例107 使用哈希表对XML文件进行查询 127  实例108 计算两个矩形矩阵的乘积 129  第5章 面向对象编程技术 131 5.1 属性和方法 132  实例109 使用属性存储用户...
  • • XY散点折线图的内插值计算 • 自选图形种类 • 插入自选图形 • 添加文本 • 自选图形绘制线条和连接符 • 旋转和翻转 • 对齐和分布 • 自动靠齐 • 设置叠放次序 • 设置组合 • 设置阴影 • 设置三维效果 • ...
  • 中文版Excel.2007图表宝典 1/2

    热门讨论 2012-04-06 18:49:24
    8.4.8 折线图中两个系列之间的阴影/237 8.5 创建时间线/238 8.6 通过堆积和重叠方法来创建“不可能的”图表/239 8.6.1 堆积图表/239 8.6.2 重叠图表/240 8.6.3 模拟一个“断裂的”值坐标轴/243 8.7 在图表表单中显示...
  • 中文版Excel.2007图表宝典 2/2

    热门讨论 2012-04-06 19:01:36
    8.4.8 折线图中两个系列之间的阴影/237 8.5 创建时间线/238 8.6 通过堆积和重叠方法来创建“不可能的”图表/239 8.6.1 堆积图表/239 8.6.2 重叠图表/240 8.6.3 模拟一个“断裂的”值坐标轴/243 8.7 在图表表单中显示...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用...
  • 实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider组件...
  • 实例001 在系统菜单中添加菜单项 2 实例002 带历史信息的菜单 3 实例003 菜单动态合并 4 实例004 像“开始”菜单一样漂亮的菜单 5 实例005 多彩的菜单 6 实例006 可以拉伸的菜单界面 8 1.2 工具栏设计...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
  • 实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
  • 实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
  • 实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
  • 实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

折线图中如何添加标题