GVKun编程网logo

Python:从负 Y 值开始的 Matplotlib 条(python%负数)

6

在本文中,我们将为您详细介绍Python:从负Y值开始的Matplotlib条的相关知识,并且为您解答关于python%负数的疑问,此外,我们还会提供一些关于(3)python--matplotlib

在本文中,我们将为您详细介绍Python:从负 Y 值开始的 Matplotlib 条的相关知识,并且为您解答关于python%负数的疑问,此外,我们还会提供一些关于(3) python--matplotlib、4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib、Cpp调用Python3,使用matplotlib画(二维)图----1.配置(Clion,mingW64, python, matplotlib)、java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本的有用信息。

本文目录一览:

Python:从负 Y 值开始的 Matplotlib 条(python%负数)

Python:从负 Y 值开始的 Matplotlib 条(python%负数)

您的 y 值为负,因此条形向负方向移动。您需要反转数据的符号。此外,您仍然希望 y 轴从较低的值变为较大的值,因此您不希望它倒置。

plt.bar(f.x,-f.y,bottom= -60)

#plt.gca().invert_yaxis() -> do not invert yaxis - you still want it to go in the same direction

enter image description here

,

您似乎想要从 -60 开始并在给定的 y 值处停止的条形。但是,plt.bar() 的第二个参数是条形高度,而不是它的终点。

您可以通过从所需的 y 值中减去底部来计算高度:f.y - (-60)

import matplotlib.pyplot as plt
import pandas as pd

f = pd.DataFrame({"x": range(1,10),"y": [-21,-24,-27,-30,-33,-36,-39,-42,-45]})
plt.bar(f.x,f.y + 60,bottom=-60,color='darkorange')
plt.ylim(-60,0)
plt.margins(x=0.02) # reduce the x margins a bit
plt.grid(axis='y',color='grey',lw=0.5)
ax = plt.gca()
ax.set_axisbelow(True)
for s in ['left','right','top']:
    ax.spines[s].set_visible(False)
plt.xticks(range(1,10))
plt.show()

resulting plot

(3) python--matplotlib

(3) python--matplotlib

(一)1.如何绘制散点图

1
2
3
4
5
6
7
8
9
10
11
12
import  numpy as np
import  matplotlib.pyplot as plt
 
# 如何绘制散点图
# 先随机生成数据
=  np.array( range ( 100 ))
=  np.sin(x)
 
# 直接输入x和y便可绘制相应的散点图
plt.scatter(x,y)
# 不要忘了这句话,表示让图像显示
plt.show()

  

分享图片

可以看到类似于正弦曲线一样的点

 

(一)2.如何给散点图加上样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.array( range ( 0 100 5 ))
=  3  *  +  2
 
# scatter里面的参数有很多,不过我们主要使用四种
# 1:s,表示点的面积,注意是面积。
# 2:c,颜色,不指定默认为蓝色
# 3:marker:点的形状,不指定默认为点
# 4:alpha:透明度,不指定默认为1,表示透明度为0
plt.scatter(x,y,s = 100 ,c = "green" ,marker = "<" ,alpha = 0.1 )
 
plt.show()

  

分享图片

 

(二)1.如何绘制折线图

1
2
3
4
5
6
7
8
9
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.linspace( - 1 1 100 )
=  * *  2
 
plt.plot(x,y)
# 此外还有一个plt.plot_date()函数,专门用来绘制有一个轴是日期格式的数据
plt.show()

  

分享图片

 

 

(二)2.如何给折线图加上样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.linspace( - 10 10 20 )
=  * *  2
=  *  2  +  1
 
# 关于样式的参数有很多
# linestyle:表示线段的样式
# color:表示颜色
# marker:表示点的样式
plt.plot(x,linestyle = "-" ,color = "green" ,marker = "o" )
plt.plot(x,z,linestyle = "--" ,color = "red" ,marker = "<" )
 
plt.show()

  

分享图片

 

(三)1.如何绘制条形图

1
2
3
4
5
6
7
8
9
10
11
import  numpy as np
import  matplotlib.pyplot as plt
 
# 还记得每一个图对应的每一个函数吗?
# 散点图:scatter
# 折线图:plot
# 条形图:bar
 
# 这个函数可以只接收两个参数,分别是条形图中每一条的索引和高度
plt.bar(x = [ 0 2 3 4 5 ],height = [ 11 22 33 44 55 66 ])
plt.show()

  

分享图片

(三)2.如何给条形图加上样式

1
2
3
4
5
6
7
8
9
10
import  matplotlib.pyplot as plt
 
# color:颜色
# width:线条宽度
plt.bar(x = [ 0 ,
         height = [ 11 66 ],
         color = "green" ,
         width = 0.2 )
 
plt.show()

  

分享图片

(三)3.如何绘制横向的条形图

1
2
3
4
5
6
7
8
9
10
11
12
import  matplotlib.pyplot as plt
 
# 如果绘制横向的条形图
# 那么bottom相当于之前的x,width相当于之前的height
plt.bar(x = 0 ,
         bottom = [ 0 ,
         width = [ 11 ,
         color = "green" ,
         height = 0.2 ,
         orientation = "horizontal" )
# 还有一个plt.barh(),表示花水平的条形图,不用显示的指定orientation="horizontal",但其他的参数还是要有的
plt.show()

  

分享图片

(四)1.如何绘制直方图

1
2
3
4
5
6
7
8
9
10
11
12
import  numpy as np
import  matplotlib.pyplot as plt
 
mu  =  100
sigma  =  20
=  mu  +  sigma  *  np.random.randn( 2000 )
 
# 设置直方图
# bins:表示要分成多少个区间
# normed:表示是否进行标准化,标准化之后,那么纵坐标不在是个数,而是频率。
plt.hist(x,bins = 30 ,density = True )
plt.show()

  

分享图片

 

 (四)2.如何绘制双变量直方图

1
2
3
4
5
6
7
8
9
10
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.random.randn( 1000 ) + 2
=  np.random.randn( 1000 ) + 3
 
 
plt.hist2d(x,bins = 40 )
 
plt.show()

  

分享图片

 

(五)1.如何绘制饼图

1
2
3
4
5
6
7
8
9
10
import  matplotlib.pyplot as plt
 
labels  =  [ "satori" "mashiro" "nagisa" ]
fracs  =  [ 40 30 30 ]
 
# 最重要的两个参数
# x:所占的份额
# labels:对应的标签
plt.pie(x = fracs,labels = labels)
plt.show()

  

分享图片

细心地哲学♂家可能回好奇,为什么是一个椭圆,这是因为我们这里少了一句话

而且每一块上面光秃秃的,每个部分都贴在了一块,也不好看,我们也可以设置一些参数,让其变得好看一些

1
2
3
4
5
6
7
8
9
10
import  matplotlib.pyplot as plt
 
labels  =  [ "satori" 30 ]
 
# 加上这句话表示x和y轴的比例是一比一
# 因此图形就变成了圆形
plt.axes(aspect = 1 )
# autopct:表示每一块的比例
# explode:突出显示,每个部分不会贴在一块<br><br># shadow:表示加上一层阴影,指定为True即可
1
plt.pie(x = fracs,labels = labels,autopct = "%.0f%%" ,explode = [ 0.01 0.02 0 ]) plt.show()

  

分享图片

 

 

 

 

 

 (六)1.如何绘制箱形图

1
2
3
4
5
6
7
8
9
10
import  matplotlib.pyplot as plt
import  numpy as np
 
np.random.seed( 100 )
data  =  np.random.normal( 0 ,size = 1000 )
 
# sym:形状,表示异常值的形状
# whis:表示虚线的长度,可以控制异常值显示的多少,越大虚线越长
plt.Boxplot(data,sym = "<" ,whis = 1.5 )
plt.show()

  

分享图片

 

 

(七)颜色和样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
蓝色  -  ‘b‘
 
绿色  -  ‘g‘
 
红色  -  ‘r‘
 
青色  -  ‘c‘
 
品红  -  ‘m‘
 
黄色  -  ‘y‘
 
黑色  -  ‘k‘ 
 
白色  -  ‘w‘

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
‘.‘        point marker
‘,‘        pixel marker
‘o‘        circle marker
‘v‘        triangle_down marker
‘^‘        triangle_up marker
‘<‘        triangle_left marker
‘>‘        triangle_right marker
‘1‘        tri_down marker
‘2‘        tri_up marker
‘3‘        tri_left marker
‘4‘        tri_right marker
‘s‘        square marker
‘p‘        pentagon marker
‘*‘        star marker
‘h‘        hexagon1 marker
‘H‘        hexagon2 marker
‘+‘        plus marker
‘x‘        x marker
‘D‘        diamond marker
‘d‘        thin_diamond marker
‘|‘        vline marker
‘_‘        hline marker

  

1
2
3
4
‘-‘  solid line style
‘--‘  dashed line style
‘-.‘  dash - dot line style
‘:‘  dotted line style

  输入样式的时候还有一个简便的方法,cx--,c是青色,x是点的样式,--是线的样式

 

(八)1.如何绘制子图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( 0 5 )
 
# 生成一个画布
fig  =  plt.figure()
 
# 往画布上添加对象
# 这里的221表示,生成一个2X2的画布,并处于第一个位置
s1  =  fig.add_subplot( 221 )
s2  =  fig.add_subplot( 222 )
s3  =  fig.add_subplot( 223 )
s4  =  fig.add_subplot( 224 )
y1  =  np.exp(x)
y2  =  np.sin(x)
y3  =  np.cos(x)
y4  =  * *  2
 
s1.plot(x,y1,  "cx--" )
s2.plot(x,y2,  "bo-." )
s3.plot(x,y3,  "g<--" )
s4.plot(x,y4,  "y>-." )
 
# 最后显示要用fig,因为它是我们创建出来的画布,必须要让它显示
fig.show()

  

分享图片

 

(八)2.如何绘制子图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( 0 5 )
 
plt.subplot( 221 )
plt.plot(x,np.exp(x))
plt.subplot( 222 )
plt.plot(x,np.sin(x))
plt.subplot( 223 )
plt.plot(x,np.cos(x))
plt.subplot( 224 )
plt.plot(x,x * * 2 )
 
plt.show()

  

分享图片

 

(九)如何绘制网格

1
2
3
4
5
6
7
8
9
10
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( 0 5 )
 
# 绘制出格子
plt.grid(x,color = "green" )
# 绘制线段
plt.plot(x,x,  "cx--" )
plt.show()

  

分享图片

 

(十)如何给图像带上标记

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-1,1,100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# 加上需要的标签label
plt.plot(x,label="np.sin")
plt.plot(x,label="np.cos")
plt.plot(x,label="np.tan")

# 必须加上这句话,否则标签不显示
# legend里面还有一个location参数,可以指定位置
# 以及ncol可以指定要标签分几列显示

plt.legend()

plt.show()

  

分享图片

 

 

 

 (十一)调整坐标轴范围

1
2
3
4
5
6
7
8
9
10
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( - 100 100 )
=  3  *  +  1
 
plt.plot(x,y)
# 表示x轴从-10到10,y轴-100到100<br># 也可以通过plt.xlim([,])和plt.ylim([,])只调x轴或y轴<br># 如果只想调整一边的话,就直接指定最大或者最小,xlim(xmin=,xmax=),ylim(ymin=,ymax=)
plt.axis([ - 10 - 100 100 ])
plt.show()

  

分享图片

 

(十二)调整坐标轴刻度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( 1 10 )
 
plt.plot(x,x)
 
# 获取坐标轴属性,get current axis
ax  =  plt.gca()
# nbins表示有多少间隔,可以看到分成了20份
ax.locator_params(nbins = 20 )
# 如果我只想调整某一个轴的话
# 指定ax.locator_params("x",nbins=20)
 
plt.show()

  

分享图片

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import  numpy as np
import  matplotlib.pyplot as plt
import  matplotlib as mpl
import  datetime
 
start  =  datetime.date( 2016 1 )
end  =  datetime.date( 2017 1 )
timedelta  =  datetime.timedelta(days = 1 )
 
date  =  mpl.dates.drange(start,end,timedelta)
=  np.random.rand( len (date))
 
ax  =  plt.gca()
plt.plot_date(date,y)
 
# 设置时间格式
date_format  =  mpl.dates.DateFormatter( "%Y-%m-%d" )
 
# 将格式应用到x轴上
ax.xaxis.set_major_formatter(date_format)
 
plt.show()

  

分享图片

 

(十三)如何添加坐标轴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( 2 20 1 )
 
y1  =  x
y2  =  np.log(x)
 
fig  =  plt.figure()
 
ax1  =  fig.add_subplot( 111 )
 
ax1.plot(x,y1)
ax1.set_ylabel( "mashiro" )
 
# 表示生成一个双胞胎y轴,twinx,表示生成一个y轴
ax2  =  ax1.twinx()
 
ax2.plot(x,y2)
ax2.set_ylabel( "satori" )
 
fig.show()

  

@H_775_3301@

 

 

(十四)添加注释

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( - 10 11 )
 
=  * *  2
 
plt.plot(x,y)
 
 
plt.annotate( "my name is satori" ,
              xy = ( 0 5 ),   # 箭头坐标
              xytext = ( 0 20 ),   # 文本坐标
              arrowprops = { "facecolor" "r" ,   # 颜色
                          "headlength" 10 ,   # 箭头的长度
                          "headwidth" 30 ,   # 箭头的头的宽度
                          "width" 20   # 箭头的身体的宽度
                          }
              )
 
plt.show()

  

分享图片

(十五)如何绘制3D图形

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import  matplotlib.pyplot as plt
import  numpy as np
from  mpl_toolkits.mplot3d  import  Axes3D as A3
 
fig  =  plt.figure()
ax  =  A3(fig)
=  np.arange( - 4 0.2 )
=  np.arange( - 4 0.2 )
x,y  =  np.meshgrid(x,y)
=  np.power(x,  2 +  np.power(y,  2 )
plt.title( "satori" )
 
# rstride,cstride表示行列每隔多少个点建一个面,cmap表示颜色
ax.plot_surface(x,rstride = 1 ,
                 cstride = 1 ,
                 cmap = plt.cm.CMRmap,
                 alpha = 0.4 )
ax.set_xlabel( ‘x_label‘ ,color = ‘r‘ )
ax.set_ylabel( ‘y_label‘ ,color = ‘g‘ )
ax.set_zlabel( ‘z_label‘ ,color = ‘b‘ )
 
plt.show()

 

  

分享图片

 

如何解决中文乱码问题

1
2
3
4
import  matplotlib.pyplot as plt
 
plt.rcParams[ ‘font.sans-serif‘ =  [ ‘SimHei‘ # 步骤一(替换sans-serif字体)
plt.rcParams[ ‘axes.unicode_minus‘ =  False    # 步骤二(解决坐标轴负数的负号显示问题)

  

 解决子图重合问题

plt.tight_layout()

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import  numpy as np
import  matplotlib.pyplot as plt
 
=  np.arange( 1 100 )
=  2  *  x
 
plt.plot(x,y)
# 调整x,y轴的取值范围
plt.xlim( 10 30 )
plt.ylim( 20 60 )
 
# 调整x或y轴的间隔
ax  =  plt.gca()
ax.locator_params( "x" ,nbins = 40 )
 
# 调整x或y轴坐标的倾斜程度
plt.xticks(rotation = 60 )
plt.show()

 

分享图片

4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib

4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib

目录

[TOC]

前言

对于数据可视化的python库,对于Matplotlib早有耳闻,今天就来正式学习一下。

(一)matplotlib的介绍

matplotlib是python优秀的2D绘图库,可以完成大部分的绘图需求,同时其可定制性也很强,可内嵌在tkinter等各种GUI框架里。

官方网站:https://matplotlib.org/users/index.html

官方教程:https://matplotlib.org/tutorials/index.html

官方例子:https://matplotlib.org/gallery/index.html

(二)画一个简单的画布

==1.源代码==

import matplotlib.pyplot as plt
import numpy as np

# 在-1~1之间建立50个点
x = np.linspace(-1, 1, 50)
# y = 2*x + 1
y = x**2

# 创建画布
plt.plot(x, y)

# 展现画布
plt.show()

==2.展示效果==

01.png

(三)画布按键的功能介绍

==1.对于画布功能键的排序==

02.png

==(1)主页==

不管图片被你整成什么样,只要你按一下主页按钮,就会恢复到刚开始的样子。

==(2)上一个视图==

就是你改变了图片的位置,这个键就是跳到上一个键的图片位置。

==(3)下一个视图==

就是你改变了图片的位置,这个键就是跳到下一个键的图片位置。

==(4)移动查看==

我们可以以拖动的方式,来查看未显示的部分。

==(5)放大查看==

我们还可以用放大的方式,来细致的观察微小的部分。

==(6)窗体设置==

我们可以调整显示区域在窗体的显示位置。

03.png

==(7)保存图片==

我们可以把视图保存为图片。

04.png

作者:Mark

日期:2019/01/30 周三

Cpp调用Python3,使用matplotlib画(二维)图----1.配置(Clion,mingW64, python, matplotlib)

Cpp调用Python3,使用matplotlib画(二维)图----1.配置(Clion,mingW64, python, matplotlib)

To my knowledge so far, Cpp画图是真滴捉急, 那就调用python帮帮忙吧。

百度了好久,试了好几次,终于走完了配置的过程。我要记录一下。

 

1.0 配置:(操作系统)64位Win7, (Cpp的IDE是)Clion。

 

1.1 安装Clion

  官网下载就可以了,地址 https://www.jetbrains.com/clion/

 

1.2 安装,配置mingW64

  1.2.1:Clion需要我们安装Toolchain,我用的是mingW64(因为我用的是64位系统),附上百度网盘地址。

    地址:https://pan.baidu.com/s/14FkN0Ul9cvcRxCOcylmoxw,密码:qu5l

  1.2.2:然后我一股脑把路径全部添加到环境变量path了

    (

      D:\ProgramFile\mingw64;

      D:\ProgramFile\mingw64\bin;

      D:\ProgramFile\mingw64\lib;

      D:\ProgramFile\mingw64\include

    )  

  1.2.3:让Clion找到mingw64

  

    如果其中的Make, C Complier,C++ Complier没找到,就手动帮Clion添加。

    !!!注意mingw的版本(指的是64位还是32位),一定要和pyhton的匹配。否则会出现如下错误:

      载入Python.h:没问题 ; 读取其中函数:unreferenced...

1.3 安装python

  1.3.1 安装python3.7

    我的安装目录是 D:\ProgramFile\Python37 ,没有用Anaconda,事实上(可能是由于环境变量path中争抢调用关系的问题),我把原来装好的anaconda卸载了。

    安装的版本是官网下载的。

    同时,添加了 D:\ProgramFile\Python37到环境变量path。

  1.3.2 用pip安装matplotlib

    a. python3.7中的pip是自带的

    b. 将python安装目录下的scripts添加到环境变量bin

    c. (可选)查看python是否安装成功:在cmd界面,输入:python --version

    d. (可选)查看pip是否安装成功:在cmd界面,输入:pip --version

    e. (可选)升级pip:在cmd界面,输入:python -m pip install -U pip setuptools

    f.  用pip安装matplotlib:在cmd界面,输入:python -m pip install matplotlib

 

1.4 Clion联结Cpp和python

  1.4.1:CMakeLists.txt的配置:

    用clion新建cpp的project,在CMakeLists.txt中添加以下两句话

    # 添加python.h头文件路径
    
include_directories(D:/ProgramFile/Python37/include)
    # 添加python动态链接库文件
    link_libraries(D:/ProgramFile/Python37/libs/python37.lib)

    如下图:

  1.4.2:main.cpp的配置

    我直接上图吧,如果这个cpp可以运行,那么说明配置成功了。

    

  

 

java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本

java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本

写在前面,最近需要在java中调用matplotlib,其他一些画图包都没这个好,毕竟python在科学计算有优势。找到了matplotlib4j,大概看了下github上的https://github.com/sh0nk/matplotlib4j,maven repository:

<dependency>
   <groupId>com.github.sh0nk</groupId>
       <artifactId>matplotlib4j</artifactId>
       <version>0.5.0</version>
</dependency>

简单贴个测试类,更多的用法在test报下有个MainTest.class。

 @Test
    public void testPlot() throws IOException, PythonExecutionException, ClassNotFoundException, NoSuchMethodException, illegalaccessexception, InvocationTargetException, InstantiationException {
        Plot plot = Plot.create(PythonConfig.pythonBinPathConfig("D:\\python3.6\\python.exe"));
        plt.plot()
                .add(Arrays.asList(1.3, 2))
                .label("label")
                .linestyle("--");
        plt.xlabel("xlabel");
        plt.ylabel("ylabel");
        plt.text(0.5, 0.2, "text");
        plt.title("Title!");
        plt.legend();
        plt.show();

    }

下面问题来了,这个对matplotlib的封装不是很全面,源码里也有很多todo,有很多函数简单用用还行,很多重载用不了,比如plt.plot(xdata,ydata)可以,但是无法在其中指定字体plt.plot(xdata,ydata,fontsize=30);

所以想要更全面的用法还得自己动手,几种办法:

  1. 大部分还是用matplotlib4j中的,个别的自己需要的但里头没有的函数,实现他的builder接口,重写build方法,返回一个py文件中命令行的字符串形式,然后反射取到PlotImpl中的成员变量registeredBuilders,往后追加命令行,感觉适用于只有极个别命令找不到的情况,挺麻烦的,而且要是传nd.array(…)这种参数还得额外拼字符串。
//拿到plotImpl中用于组装python脚本语句的的registeredBuilders,需要加什么直接添加新的builder就行了
        Field registeredBuildersField = plt.getClass().getDeclaredField("registeredBuilders");
        registeredBuildersField.setAccessible(true);
        List<Builder> registeredBuilders = (List<Builder>) registeredBuildersField.get(plt);

        TicksBuilder ticksBuilder = new TicksBuilder(yList, "yticks", fontSize);
        registeredBuilders.add(ticksBuilder);
  1. 这种比较直接,参照matplotlib4j底层,直接写py.exe文件,执行命令行,比较推荐这种,一行一行脚本自己写,数据拼装方便,看起来直观。比如写如下的脚本并执行,搞两组数据,画个散点图
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.array(自己的x数据), np.array(自己的y数据), 'k.', markersize=4)
plt.xlim(0,6000)
plt.ylim(0,24)
plt.yticks(np.arange(0, 25, 1), fontsize=10)
plt.title("waterfall")
plt.show()

像下面这么写就行了

		//1. 准备自己的数据 不用管
        List<Float> y_secondList_formatByHours = y_secondList.stream().map(second -> (float)second / 3600).collect(Collectors.toList());

        //2.准备命令行list,逐行命令添加
        List<String> scriptLines = new ArrayList<>();
        scriptLines.add("import numpy as np");
        scriptLines.add("import matplotlib.pyplot as plt");
        scriptLines.add("plt.plot("+"np.array("+x_positionList+"),"+"np.array(" +y_secondList_formatByHours+"),\"k.\",label=\"waterfall\",lw=1.0,markersize=4)");
        scriptLines.add("plt.xlim(0,6000)");
        scriptLines.add("plt.ylim(0,24)");
        scriptLines.add("plt.yticks(np.arange(0, 25, 1), fontsize=10)");
        scriptLines.add("plt.title(\"waterfall\")");
        scriptLines.add("plt.show()");
        //3. 调用matplotlib4j 里面的pycommond对象,传入自己电脑的python路径
        pycommand command = new pycommand(PythonConfig.pythonBinPathConfig("D:\\python3.6\\python.exe"));
        //4. 执行,每次执行会生成临时文件 如C:\Users\ADMINI~1\AppData\Local\Temp\1623292234356-0\exec.py,这个带的日志输出能看到,搞定
        command.execute(Joiner.on('\n').join(scriptLines));

在这里插入图片描述

搞定。

关于Python:从负 Y 值开始的 Matplotlib 条python%负数的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于(3) python--matplotlib、4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib、Cpp调用Python3,使用matplotlib画(二维)图----1.配置(Clion,mingW64, python, matplotlib)、java版matplotlib,matplotlib4j使用,java中调用matplotlib或者其他python脚本的相关知识,请在本站寻找。

本文标签: