精华内容
下载资源
问答
  • 主要介绍了详解Python Matplotlib解决绘图X轴值不按数组排序问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:import matplotlib.pyplot as pltcolums_x = ['aa','bc','ad','bd']...

    在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:

    import matplotlib.pyplot as plt

    colums_x = ['aa','bc','ad','bd']

    colums_y = [12,14,10,15]

    plt.plot(colums_x,colums_y)

    plt.show()

    我期望的是 X 轴能够按照: aa ,bc ,ad ,bd ,从左到右显示,但plt.show()的实际效果是:

    20201108032737127867.png

    会出现这种原因,按照我的了解(纯属臆想,不对请指教,谢谢),应该 Matplotlib 根据ASCLL码值或者其它值,定义了一个 X 轴的取值范围,再从数组中的值对应取值范围中的某个位置,跟 Y 轴差不多。但这不是我期望的效果。翻了一晚上的资料,幸运的是,最后让我找到理解决的方法,代码应该这样写:

    from pylab import *

    import matplotlib.pyplot as plt

    colums_x = ['aa','bc','ad','bd']

    colums_y = [12,14,10,15]

    # 自定义 x轴 的取值:

    plt.xticks(arange(len(colums_x)),colums_x)

    # 不要再写进 colums_x 了

    plt.plot(colums_y)

    plt.show()

    得到的效果图是:

    20201108032738127868.png

    这是第一次、第一篇博客,共享我遇到的简单的问题,如若写得有问题,麻烦请赐教,本人还是菜鸟,希望能和大家一起讨论、学习。关于上面我遇到的这个问题,我只摸索出理解决方法,但是原理还不了解,如果有大大知道,麻烦请告诉我,谢谢.

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持乐购源码。

    展开全文
  • Python+Matplotlib解决X 轴值不按数组排序最简单的办法问题描述解决方案复制害死人最终解决 问题描述 看标题就知道了,先上个图给大家 这个图对应的代码和数据如下,也是网上找到的最初的代码,根据自己的数据进行...

    Python+Matplotlib解决X 轴值不按数组排序最简单的办法

    问题描述

    看标题就知道了,先上个图给大家
    错误的图形X轴
    这个图对应的代码和数据如下,也是网上找到的最初的代码,根据自己的数据进行了略微改动,也是最简单的办法,让你会感觉plt的使用简直是太简单了。
    原始数据

    # 折线图
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
    #df = pd.read_excel('quanguojingji10nian.xls')
    x=dfGraph['saleArea']
    y1=dfGraph['personCount']
    plt.plot(x,y1,label='面积与人数')
    
    plt.xlabel('面积(平方米)')
    plt.ylabel('90后人数')
    plt.title('面积与人数')
    plt.legend()
    plt.show()
    

    解决方案

    上图中,问题在于X轴的数据顺序不对,原因是plt在显示数据的时候,自己按照顺序进行重新排序,结果造成“50-100”这个数值排到了最后,造成了图形很奇怪。有一个办法就是把X轴的数值定义按照ASCII的顺序,但是由于X轴数据是自动动态读取的,靠手工是不可靠的。
    经过几度查询,找到以下这篇文章:
    Python之Matplotlib 解决绘图 X 轴值不按数组排序问题

    这篇文章写的还是不错,至少知道了思路,但是这篇文章有一点不明白,就是这句:

    # 自定义 x轴 的取值:
    plt.xticks(arange(len(colums_x)),colums_x)
    

    用了以后语法始终报错,说没有定义,网上竟然没有找到类似的问题,难道是我的python版本问题吗?

    复制害死人

    有时候,复制粘贴的便利性造成了程序员的不动脑筋,上面说的那篇文章,在各个地方都能搜到,也不知道到底哪个网站的才是原创!问题关键是用的都是arange!
    后来阴差阳错的把arange改成了range,语法竟然不报错了,立马测试了一下,大家先看一下效果:
    错误图形Y轴

    最终解决

    看上图,终于解决了X轴排序的问题,但是为啥图形还是那么奇怪呢?聪明的读者大概猜到是什么问题了,上图图形对应的代码如下:

    plt.xticks(range(len(x)),x)
    plt.plot(x,y1,label='面积与人数')
    

    结合之前那篇文章,问题一下子就找到了,是第二句的问题,最终正确的代码和图形如下:

    plt.xticks(range(len(x)),x)
    plt.plot(y1,label='面积与人数')
    

    这下图形终于对了,又学到了新知识!
    正确图形
    多说一句,50-100平方米的购买人数果然多啊。

    展开全文
  • 在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:import matplotlib.pyplot as plt colums_x = ['aa','bc','ad','bd']...

    在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:

    import matplotlib.pyplot as plt
    colums_x = ['aa','bc','ad','bd']
    colums_y = [12,14,10,15]
    plt.plot(colums_x,colums_y)
    plt.show()

    我期望的是 X 轴能够按照: aa ,bc ,ad ,bd ,从左到右显示,但plt.show()的实际效果是:

    这里写图片描述

    会出现这种原因,按照我的理解(纯属臆想,不对请指教,谢谢),应该 Matplotlib 根据ASCLL码值或者其它值,定义了一个 X 轴的取值范围,再从数组中的值对应取值范围中的某个位置,跟 Y 轴差不多。但这不是我期望的效果。翻了一晚上的资料,幸运的是,最后让我找到了解决的方法,代码应该这样写:

    from pylab import *
    import matplotlib.pyplot as plt
    colums_x = ['aa','bc','ad','bd']
    colums_y = [12,14,10,15]
    # 自定义 x轴 的取值:
    plt.xticks(arange(len(colums_x)),colums_x)
    # 不要再写进 colums_x 了
    plt.plot(colums_y)
    plt.show()

    得到的效果图是:
    这里写图片描述

    这是第一次、第一篇博客,分享我遇到的简单的问题,如若写得有问题,麻烦请赐教,本人还是菜鸟,希望能和大家一起讨论、学习。关于上面我遇到的这个问题,我只摸索出了解决方法,但是原理还不理解,如果有大大知道,麻烦请告诉我,谢谢.

    展开全文
  • 在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:import matplotlib.pyplot as pltcolums_x = ['aa','bc','ad','bd']...

    在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:

    import matplotlib.pyplot as plt

    colums_x = ['aa','bc','ad','bd']

    colums_y = [12,14,10,15]

    plt.plot(colums_x,colums_y)

    plt.show()

    我期望的是 X 轴能够按照: aa ,bc ,ad ,bd ,从左到右显示,但plt.show()的实际效果是:

    2019080514505748.png

    会出现这种原因,按照我的理解(纯属臆想,不对请指教,谢谢),应该 Matplotlib 根据ASCLL码值或者其它值,定义了一个 X 轴的取值范围,再从数组中的值对应取值范围中的某个位置,跟 Y 轴差不多。但这不是我期望的效果。翻了一晚上的资料,幸运的是,最后让我找到了解决的方法,代码应该这样写:

    from pylab import *

    import matplotlib.pyplot as plt

    colums_x = ['aa','bc','ad','bd']

    colums_y = [12,14,10,15]

    # 自定义 x轴 的取值:

    plt.xticks(arange(len(colums_x)),colums_x)

    # 不要再写进 colums_x 了

    plt.plot(colums_y)

    plt.show()

    得到的效果图是:

    2019080514505749.png

    这是第一次、第一篇博客,分享我遇到的简单的问题,如若写得有问题,麻烦请赐教,本人还是菜鸟,希望能和大家一起讨论、学习。关于上面我遇到的这个问题,我只摸索出了解决方法,但是原理还不理解,如果有大大知道,麻烦请告诉我,谢谢.

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    本文标题: 详解Python Matplotlib解决绘图X轴值不按数组排序问题

    本文地址: http://www.cppcns.com/jiaoben/python/267518.html

    展开全文
  • 在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:import matplotlib.pyplot as pltcolums_x = ['aa','bc','ad','bd']...
  • 在用Matplotlib库绘制折线图的时候遇到一个问题,当定义一个x轴数组时,plot绘制折线图时,x轴并不会按照我们定义的数组的顺序去排列显示,例如:import matplotlib.pyplot as pltcolums_x = ['aa','bc','ad','bd']...
  • How can I make this plot's x-axis looks better?Is there any way to show only 3 values in x-axis while plotting all values in my dataframe?I tried using plt.xticks(rotation=70) but it still cuts my num...
  • 1.去掉x轴刻度: plt.xticks([]) 2.去掉y轴刻度: plt.yticks([])
  • 我正在尝试创建一个由顶部情节和底部情节组成的单一情节.X轴是时间序列的日期.顶部图包含数据的烛台图,底部图应包含条形图 – 具有自己的Y轴(也在左侧 – 与顶部图相同).这两幅图不应超过.这是迄今为止所做的一切....
  • 8.2节讲到了局部加权线性回归,由于我们这里只有一个特征,因此输入X矩阵只有偏置常数(x0=1)和x1 楼主闲来无事,从网上down近几年西湖区的房价变化,结合课程中学到的算法,做了一些分析 # -*- coding: utf-8 -...
  • import matplotlib as mt import numpy as np y=[7,0,0,0,0,0,1,25,98,333,471,0,322,429,425,478,385,237,219,284,351,364,165,0] x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24] x1=np....
  • 主要是设置坐标刻度的数值特征(例如为2 或 5 或 10 的倍数) 以及 刻度的文本格式 ,如 浮点型 或者 整型 这个是在工作中处理数据遇到的,系统自动默认的坐标上的数据是浮点数,而我要求是整数 目前已解决 ...
  • 如何显示[a,b,c]的x轴值?import pandas as pdimport matplotlib.pyplot as plts = pd.Series([1, 2, 10], index=['a', 'b', 'c'])s.plot()plt.show()解决方法:您可以使用plt.xticks显示您的xtick标签:import ...
  • 简单描述就是,首先拿到的是时间戳与每个时间戳对应的 value ,需要绘制折线图,并且,x 需要按照类似于上面图片所示的格式。 例子代码如下: import matplotlib.pyplot as plt import matplotlib.dates as md ...
  • matplotlib 纵坐标显示数据

    千次阅读 2017-04-09 14:29:22
    import matplotlib as mt import numpy as np  y=[7,0,0,0,0,0,1,25,98,333,471,0,322,429,425,478,385,237,219,284,351,364,165,0] x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24] x1=np
  • matplotlib横轴密度修改

    万次阅读 2017-09-03 22:50:22
    matplotlib横轴密度修改import matplotlib.pyplot as plt import matplotlib.ticker as tickerx = [0,5,9,10,15] ...#通过修改tick_spacing的可以修改x轴的密度 #1的时候1到16,5的时候只显示几个 fig
  • 1 解决通过引入import matplotlib....MultipleLocator里面的是间隔多少个显示 import matplotlib.pyplot as plt import matplotlib.ticker as ticker def plt_data(sz50_q,stock_q): # 画出真实数据和预测数据
  • 我正在尝试制作一个负值的条形图,其中基线x轴位于-10而不是0,并且这些都为-10,因此它们从基线向上延伸。如果按原样绘制,则条形图向下延伸:123import matplotlib.pyplot as pltvals = [-4, -6, -8, -6, -5]plt...
  • matplotlib修正坐标ylim的空白

    千次阅读 2019-02-23 10:45:48
    matplotlib绘制折线图后,我通过找y轴最小值的方式,绘制下图中的标注线,但是看到下面总是有一些空白,说明得到的y轴最小值不是在原点,就像x轴的第一个一样。 bottom, top = plt.ylim() #获得y轴最大最小值 ...
  • 本文要讲的是Matplotlib,一个强大的...一、曲线图绘制单条曲线:x = [1,2,3,4,5,6,7,8,9,10]y = [10,9,8,7,6,5,4,3,2,1]plt.plot(x,y)注意:y,x轴必须为数字绘制抛物线:x = np.arange(-np.pi,np.pi,0.1)y = x*...
  • import matplotlib.pyplot as pltimport numpy as npx=["q","w","e","r","t","y"]#不变的依然是x表示标签y=[4,6,7,6,3,9]plt.barh(x,y,align="center",color="green",alpha=0.6,label="barh")box=dict(fc="red",...
  • 什么是matplotlib?先体验一下它的功能入门级使用体验效果from matplotlib import pyplot as plt x = range(2,5) # 【2,3,4】 y = [1,3,2] plt.plot(x,y) plt.show()知识点matplotlib 库 pyplot 模块 plot 绘制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 384
精华内容 153
关键字:

matplotlibx轴值