Python画图基本方法总结

原创 2016年08月11日 17:34:29
import pandas as pd

import numpy as np


frommatplotlib.ticker import MultipleLocator, FormatStrFormatter
import matplotlib as mpl
# matplotlib.use('Agg')
import matplotlib.pyplot as plt  


1.设置画布大小

   plt.figure(figsize=(19, 12))    #设置画布尺寸大小,会影响自动弹出来图框的大小
    ax = plt.subplot(1, 1, 1)           # 画子图

2. 取不同颜色个数
    col_num = df.shape[1]
    colormap = plt.cm.gist_ncar   # 颜色轴连续的,python自带的字母颜色只有7中,有时不够用

    colors = [colormap(i) for i in np.linspace(0, 0.9, col_num)]

3.画点图,折线图,label会对应legend
    for i in range(1, df.shape[1]):
        plt.plot(df.iloc[:, 0], df_total_guodu_3_relative30up.iloc[:, i], color=colors[i],
                 linestyle='-', linewidth=6, label='%s' % df.columns[i])

4.显示中文时指定路径

  用fc-list : lang=zh在终端里查询包含哪些字体

    myfont = mpl.font_manager.FontProperties(fname='/usr/share/fonts/truetype/arphic/ukai.ttc')   #指定中文字体路径
    myfont1 = mpl.font_manager.FontProperties(fname='/usr/share/fonts/opentype/noto/NotoSansCJK.ttc',size=20)

   ax.legend(legend, loc='best', bbox_to_anchor=(1.03, -0.04),ncol=8, frameon=False,prop=myfont1

   # 不能单独设置字体大小,fontsize,prop不能同时用,如果只显示英文数字,不需要指定字体,则可直接用fontsize

5.设置标签是横向摆放,定义函数flip

 ----------------------------------------------------------------------------------------------------------  

import itertools

 def flip(items, ncol):
     return itertools.chain(*[items[i::ncol] for i in range(ncol)])

-------------------------------------------------------------------------------------------------------

   handles, labels = ax.get_legend_handles_labels()   
    plt.legend(flip(handles, 8), flip(labels, 8), loc='best', fontsize=17, bbox_to_anchor=(0.9, -0.02), ncol=8,
               frameon=False)

6.标题
    plt.title(u'过渡', fontproperties=myfont, fontsize=25)

7.轴的各种设置
    xmajorLocator = MultipleLocator(1)                     # 将x主刻度标签设置为1的倍数
    ax.xaxis.set_major_locator(xmajorLocator)

    ymajorFormatter = FormatStrFormatter('%.2f')     # 设置y轴标签文本的格式两位小数(‘%.2f%%’)百分号格式
    ax.yaxis.set_major_formatter(ymajorFormatter)


  ticklab = ax.yaxis.get_ticklabels()[0]                          #设置y轴标签的位置
  trans = ticklab.get_transform()
  ax.yaxis.set_label_coords(-0.06, 6000, transform=trans)


    ax.set_ylim([0, 5])  #设置y轴取值范围
    ax.set_xlim([0, 11])  # 设置x轴取值范围

    for tick in ax.xaxis.get_major_ticks():  # 设置x轴刻度文本的大小
        tick.label1.set_fontsize(18)

    for tick in ax.yaxis.get_major_ticks():  # 设置y轴刻度文本的大小
        tick.label1.set_fontsize(18)

    ax.yaxis.grid(True)  # y坐标轴的网格

8.保存图片

    plt.savefig('./total.jpg', format='jpg') # 保存图片


9.累计柱状图

# 每个比例柱形图的个数,方便后面画个数
N = df[1]-1
left = np.arange(N)
width = 0.55

height = []

height.append(df[0, 1:3]/1000000)
plt.bar(left, height[0], width,  facecolor = colors[0], edgecolor = 'white', align='center')

for i in range(1, df[0]):
    height.append(df_total_owing.iloc[i, 1:3]/1000000)
    plt.bar(left, height


10. 设置横轴标签是其中文,日期,并旋转角度

N = df.shape[0]                       #设置x轴刻度标签
left = np.arange(N)
x_ticks = df.iloc[:, 0]          # 设置x轴的刻度值并旋转,文本刻度值太长,放在后面不管用
plt.xticks(left, x_ticks, rotation=90)          # left是每个刻度开始的位置



版权声明:本文为博主原创文章,未经博主允许不得转载。

networkx笔记:绘制基本网络图

绘制基本网络图 用matplotlib绘制网络图 基本流程: 1. 导入networkx,matplotlib包 2. 建立网络 3. 绘制网络 nx.draw() 4. 建立布局 pos = nx...
  • ztf312
  • ztf312
  • 2015年08月13日 22:14
  • 4055

matplotlib基本绘图参数

导入绘图包import matplotlib.pyplot as plt import numpy as np使用from pylab import *一次导入matplotlib.pyplot和nu...
  • SA14023053
  • SA14023053
  • 2016年07月05日 22:09
  • 8125

matplotlib中如何改变figure的布局和大小

以下来自Stack Overflow 从上面我们可以很清晰的看出应该如何使用matplotlib的figure方法。...
  • cdqn10086
  • cdqn10086
  • 2017年05月17日 16:31
  • 2812

python中plot用法——线条、点、颜色

>>>import matplotlib >>>from pylab import * >>>help(plot) Help on function plot in module matplotlib...
  • ztf312
  • ztf312
  • 2015年11月19日 20:42
  • 25614

python画图之散点图sactter函数详解,基本散列点绘制

原文地址:http://blog.csdn.net/u013634684/article/details/49646311 最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什...
  • XiaoXIANGZI222
  • XiaoXIANGZI222
  • 2017年02月13日 10:47
  • 1892

Python基本语法熟悉,turtle图形函数画图

一个对基本语法简单运用的小游戏 “ import time print “Welcome to the space” password = raw_input(“Please input yo...
  • Victordas
  • Victordas
  • 2017年12月28日 20:06
  • 35

python 中的matplotlib.pylot 模块中的plot 用法

>>>import matplotlib >>>from pylab import * >>>help(plot) 运行后见下图所示 Help on function plot in ...
  • duan1522630316
  • duan1522630316
  • 2012年06月02日 13:20
  • 14978

Python中配置matplotlib模块资源

  • 2016年01月02日 16:02
  • 59.06MB
  • 下载

Android学习之实现Canvas基本画图方法

主要就画一些图形,然后更改一下坐标,使图形在屏幕之间来回动...   MainActivity 1 public class ManiActivity extends Activi...
  • fliu0721
  • fliu0721
  • 2014年01月14日 14:07
  • 434

Python 3下Matplotlib画图中文显示乱码的解决方法

Matplotlib是Python的一个很好的绘图包,但是其本身并不支持中文(貌似其默认配置中没有中文字体),所以如果绘图中出现了中文,就会出现乱码。在《用Python作科学计算》一书中,有一个最小二...
  • u012705410
  • u012705410
  • 2015年08月09日 21:01
  • 11098
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python画图基本方法总结
举报原因:
原因补充:

(最多只允许输入30个字)