精华内容
下载资源
问答
  • pandas 作图无法显示中文
    千次阅读
    2016-05-11 23:54:25

    最近开始使用 pandas 处理可视化数据,挖掘信息。但是在作图时遇到,无法显示中文的问题。

    下面这段代码是统计 fujian1.csv 文件中 City 所在列中各个城市出现次数的代码。可是作图直方图时在 x 轴上无法显示中文。

    import pandas as pd
    # Reading data locally
    df = pd.read_csv('fujian1.csv', encoding='gbk')
    counts = df['City'].value_counts()
    counts[counts > 1000].plot(kind = 'bar')

    查了一些资料,找到的原因是 matplotlib 包默认只支持 ASCII 码,不支持 unicode 码。

    解决方法,就是需要将 matplotlib 的安装目录下的 matplotlibrc 配置文件修改一下,将font.family 部分(大概在139行左右)注释去掉,并且在 font.seriffont.sans-serif 支持字体加上一个中文字体,如 SimHei:

    font.family         : sans-serif
    #font.style          : normal
    #font.variant        : normal
    #font.weight         : medium
    #font.stretch        : normal
    # note that font.size controls default text sizes.  To configure
    # special text sizes tick labels, axes, labels, title, etc, see the rc
    # settings for axes and ticks. Special text sizes can be defined
    # relative to font.size, using the following values: xx-small, x-small,
    # small, medium, large, x-large, xx-large, larger, or smaller
    #font.size           : 12.0
    font.serif          : SimHei, Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
    font.sans-serif     : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
    #font.cursive        : Apple Chancery, Textile, Zapf Chancery, Sand, cursive
    #font.fantasy        : Comic Sans MS, Chicago, Charcoal, Impact, Western, fantasy
    #font.monospace      : Bitstream Vera Sans Mono, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace

    最终实现了正常显示中文。

    这里写图片描述

    更多相关内容
  • 今天小编就为大家分享一篇解决pandas 作图无法显示中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Pandas作图

    2018-12-03 18:21:37
    Pandas 通过整合 matplotlib 的相关功能实现了基于 DataFrame的一些作图功能
  • 使用Python pandas作图

    千次阅读 2017-08-02 16:38:34
    推荐使用ipython的pylab模式,如果要在ipython notebook中嵌入图片,则还需要指定pylab=inline。ipython --pylab ##ipython的pylab模式 ...import pandas as pd基本画图命令Pandas通过整合matplotlib的相关功能

    推荐使用ipython的pylab模式,如果要在ipython notebook中嵌入图片,则还需要指定pylab=inline。

    ipython --pylab ##ipython的pylab模式
    ipython notebook --pylab=inline ##notebook的inline模式
    import pandas as pd

    基本画图命令

    Pandas通过整合matplotlib的相关功能实现了基于DataFrame的一些 作图功能。下面的数据是每年美国男女出生数据:

    url = 'http://s3.amazonaws.com/assets.datacamp.com/course/dasi/present.txt'
    present = pd.read_table(url, sep=' ')
    present.shape
    (63, 3)
    present.columns
    Index([u'year', u'boys', u'girls'], dtype='object')

    可以看到这个数据集共有63条记录,共有三个字段:Year,boys,girls。为了简化计算将year作为索引。

    present_year = present.set_index('year')

    plot是画图的最主要方法,Series和DataFrame都有plot方法。

    可以这样看一下男生出生比例的趋势图:

    present_year['boys'].plot()
    plt.legend(loc='best')

    这里写图片描述

    这是Series上的plot方法,通过DataFrame的plot方法,你可以将男生和女生出生数量的趋势图画在一起。

    present_year.plot()

    这里写图片描述

    present_year.girls.plot(color='g')
    present_year.boys.plot(color='b')
    plt.legend(loc='best')

    这里写图片描述

    可以看到DataFrame提供plot方法与在多个Series调用多次plot方法的效果是一致。

    present_year[:10].plot(kind='bar')

    这里写图片描述

    plot默认生成是曲线图,你可以通过kind参数生成其他的图形,可选的值为:line, bar, barh, kde, density, scatter。

    展开全文
  • 用python-pandas作图矩阵

    2020-12-02 22:30:27
    注:本文为一篇翻译文章,来自于Visualize Machine Learning Data in Python With Pandas - Machine Learning Mastery,原文标题是VisualizeMachine Learning Data in Python With Pandas(在Python里使用pandas对...

    注:本文为一篇翻译文章,来自于

    Visualize Machine Learning Data in Python With Pandas - Machine Learning Mastery,原文标题是Visualize

    Machine Learning Data in Python With Pandas(在Python里使用pandas对机器学习的数据进行可视化分析),作者的意思是我们在采用机器学习算法对数据进行分析时,首先要对数据进行了解,而了解数据最快速的方式就是可视化。但是作者可视化采用的方法对很多data都通用,且采用的是各种图形的图矩阵,如直方图、散点图矩阵等等。本文就根据作者的分析来介绍如何运用pandas作各种矩阵图。

    (1)数据

    数据为Pima

    Indians dataset,在作者的代码中包含该数据来源网址,即皮马印第安人糖尿病数据集,样本个数有768个,包含变量有:

    Preg:怀孕次数

    Plas:口服葡萄糖耐量试验中血浆葡萄糖浓度为2小时

    Pres:舒张压(mm Hg)

    Skin:三头肌皮褶厚度(mm)

    test :2小时血清胰岛素(μU/

    ml)

    mass:体重指数(kg /(身高(m))^ 2)

    pedi:糖尿病血统功能

    age:年龄(岁)

    class:类变量(0或1),估计是性别。

    (2)Histograms(直方图矩阵)

    url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"

    names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] #设置变量名

    data = pandas.read_csv(url, names=names) #采用pandas读取csv数据

    data.hist()

    plt.show()

    但是,我们看到图形并不协调,存在变量与坐标重叠的情况,我们可以调整hist()的参数来解决,包括对x轴、y轴标签大小的调节((xlabelsize,ylabelsize),整个图形布局大小的调节figsize:

    data.hist(xlabelsize=7,ylabelsize=7,figsize=(8,6)) #

    plt.show()

    可以看到每一个变量的分布情况,其中mass、plas、pres呈现一定的正态分布,其他除了class之外,基本上左偏。

    (3)Density Plots(密度图矩阵)

    data.plot(kind='density', subplots=True, layout=(3,3), sharex=False,fontsize=8,figsize=(8,6))

    plt.show()

    原始代码输出后仍然存在重叠的地方,在这里加入了对图中坐标文字fontsize,以及整体布局大小figsize。

    (4)箱线图矩阵(Box and Whisker Plots)

    data.plot(kind='box', subplots=True, layout=(3,3), sharex=False, sharey=False, fontsize=8,figsize=(8,6))

    plt.show()

    与(3)类似,在这里注意可以共享x轴和y轴,用了sharex=False, sharey=False的命令。

    (5)相关系数矩阵图(Correlation Matrix Plot)

    import numpy

    correlations = data.corr() #计算变量之间的相关系数矩阵

    # plot correlation matrix

    fig = plt.figure() #调用figure创建一个绘图对象

    ax = fig.add_subplot(111)

    cax = ax.matshow(correlations, vmin=-1, vmax=1) #绘制热力图,从-1到1

    fig.colorbar(cax) #将matshow生成热力图设置为颜色渐变条

    ticks = numpy.arange(0,9,1) #生成0-9,步长为1

    ax.set_xticks(ticks) #生成刻度

    ax.set_yticks(ticks)

    ax.set_xticklabels(names) #生成x轴标签

    ax.set_yticklabels(names)

    plt.show()

    颜色越深表明二者相关性越强。

    (6)散布图矩阵(Scatterplot Matrix)

    from pandas.tools.plotting import scatter_matrix

    scatter_matrix(data,figsize=(10,10))

    plt.show()

    展开全文
  • 下面小编就为大家带来一篇对pandas的dataframe绘图并保存的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • #pandas中的绘图函数 import pandas as pd import os os.chdir(r'E:\可视化分析\Excel1\Python数据可视化2') # 定义数据的目录 df=pd.read_csv('data.csv',index_col='年份') # 读取数据,并将年份作为index列 df....

    #pandas中的绘图函数
    import pandas as pd
    import os
    os.chdir(r'E:\可视化分析\Excel1\Python数据可视化2')  # 定义数据的目录
    df=pd.read_csv('data.csv',index_col='年份') # 读取数据,并将年份作为index列
    df.head()

     人均GDP(元)啤酒产量(万千升)居民消费价格指数(上面=100)
    年份   
    20007857.72231.3100.4
    20018621.72288.9100.7
    20029398.12402.799.2
    200310542.02540.5101.2
    200412335.62948.6103.9

    x=df.index.values   # 将值定义为x
    y=df['人均GDP(元)'].values  # 将值定义为y

    # 设置字体,避免乱码
    from pylab import mpl
    mpl.rcParams['font.sans-serif']=['FangSong']  

    import matplotlib.pyplot as plt

    fig,ax=plt.subplots()
    ax.plot(x,y,'r--o')
    ax.set(title='人均GDP走势图',xlabel='年份',ylabel = '人均GDP')
    plt.show()

    # 另一种画图方式

    fig = plt.figure()
    ax=fig.add_subplot(111)

    ax.plot(x,y,'r--o')
    ax.set(title='人均GDP走势图',xlabel='年份',ylabel='人均GDP')
    plt.show()

    #pandas中的绘图函数
    df['人均GDP(元)'].plot(color='r')
    plt.show()

    df['人均GDP(元)'].plot(kind='bar',color='blue')
    plt.show()

    df.plot()
    plt.show()

     

    df.plot(kind='bar')
    plt.show()

    # 堆积柱形图
    df.plot(kind='bar',stacked =True)
    plt.show()

    # 常用图表绘制
    # 散点图
    import numpy as np
    data =np.random.randint(0,100,size = [40,40])  # size指大小
    # 二维散点图
    x,y = data[0],data[1]
    ax = plt.subplot(111)
    ax.scatter(x[:10],y[:10],c='r')  # 定义索引0~10为红色
    ax.scatter(x[10:20],y[10:20],c='b')  #定义索引10~20为红色
    ax.set_xlabel('X')
    ax.set_ylabel('Y')  # 定义y轴
    plt.show()

    # 三维散点图
    from mpl_toolkits.mplot3d import Axes3D

    x,y,z =data[0],data[1],data[2]
    ax = plt.subplot(111,projection ='3d')
    ax.scatter(x[:10],y[:10],z[:10],c = 'b')
    ax.scatter(x[10:20],y[10:20],z[10:20],c= 'r')
    ax.scatter(x[20:30],y[20:30],z[20:30],c= 'g')
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    plt.show()

     

    # 3、绘制词云图及jieba分词
    from wordcloud import WordCloud
    import jieba
    print(list(jieba.cut('我是一个超级棒的yin')))

    ['我', '是', '一个', '超级', '棒', '的', 'yin']

    # 将文本文件读取进来
    with open('paragraph.txt',encoding = 'utf-8') as file:
        text =file.read()

    wordlist_jieba = jieba.cut(text)
    wordlist= '/'.join(wordlist_jieba)
    print(wordlist)

    /自然语言/处理/是/计算机科学/领域/与/人工智能/领域/中/的/一个/重要/方向/。/它/研究/能/实现/人/与/计算机/之间/用/自然语言/进行/有效/通信/的/各种/理论/和/方法/。/自然语言/处理/是/一门/融/语言学/、/计算机科学/、/数学/于/一体/的/科学/。/因此/,/这一/领域/的/研究/将/涉及/自然语言/,/即/人们/日常/使用/的/语言/,/所以/它/与/语言学/的/研究/有着/密切/的/联系/,/但/又/有/重要/的/区别/。/自然语言/处理/并/不是/一般/地/研究/自然语言/,/而/在于/研制/能/有效/地/实现/自然语言/通信/的/计算机系统/,/特别/是/其中/的/软件系统/。/因而/它/是/计算机科学/的/一部分/。

    #绘制词云图
    wordcloud = WordCloud(font_path = 'C:/Windows/Fonts/simfang.ttf').generate(wordlist)
    image = wordcloud.to_image()
    image.show()

    #散点图矩阵
    from sklearn.datasets import load_iris
    iris_dataset=load_iris()

    #绘制散点图矩阵
    import pandas as pd

    iris_df=pd.DataFrame(iris_dataset['data'],columns=iris_dataset.feature_names)
    iris_df.head()

     sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
    05.13.51.40.2
    14.93.01.40.2
    24.73.21.30.2
    34.63.11.50.2
    45.03.61.4

    0.2

     

    grr=pd.plotting.scatter_matrix(iris_df,c=iris_dataset['target'],figsize=(15,15),marker='o',alpha=0.5)

     

    #逻辑回归中的sigmoid函数
    #matplotlib,numpy

    def sigmoid(x):
        return 1/(1+np.exp(-x))

    from pylab import mpl

    mpl.rcParams['axes.unicode_minus']=False

    x=np.arange(-5,6,1)
    fig,ax=plt.subplots()
    ax.plot(x,sigmoid(x),'r')

    展开全文
  • pandas绘图

    2020-12-22 11:55:05
    导语:为什么用pandas绘图matplotlib虽然功能强大,但是matplotlib相对而言较为底层,画图时步骤较为繁琐,比较麻烦,因为要画一张完整的图表,需要实现很多的基本组件,比如图像类型、刻度、标题、图例、注解等等。...
  • 4. Pandas作图  4.1 直接对Series进行绘图:closeMeansKO.plot() # KO公司12个月的月平均收盘价折线图 from matplotlib.finance import quotes_historical_yahoo_ochl from datetime import date, ...
  • 1、pandas可以用来画DataFrame和Series的图 如: import numpy as npimport matplotlib.pyplot as pltimport pandas as pdx = np.linspace(0, 1)y = np.sin(4 * np.pi * x) * np.exp(-5 * x)t=pd.DataFrame(y,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,535
精华内容 2,214
关键字:

pandas 作图