# 6.2 向任位置添加坐标轴

marplotlib支特向画布的任意位置添加自定义大小的坐标系统，同时显示坐标轴，而不再受规划区城的限制。pyplot機块可以使用axes()函数创建一个人Axes类的对象。并将Axes类的对象添加到当前画布中。axes()函数的语法格式如下：

axes (arg=None projection=None, polar=False, aspect, frame_on, **kwargs)


### 案例一：

1.代码如下：

import matplotlib.pyplot as plt
ax = plt.axes((0.2, 0.5, 0.3, 0.3))
ax.plot([1, 2, 3, 4, 5])
ax2 = plt.axes((0.6, 0.4, 0.2, 0.2))
ax2.plot([1, 2, 3, 4, 5])
plt.title("2020080603052")
plt.show()


# 6.3 定制刻度

## 6.3.2 定制刻度的样式

tick_params(axis='both',**kwargs)


### 案例二：

1.代码如下：

import matplotlib.pyplot as plt
from datetime import datetime
from matplotlib.dates import DateFormatter, HourLocator
ax = plt.gca()
hour_loc = HourLocator(interval=2)
date_fmt = DateFormatter('%Y/%m/%d')
ax.xaxis.set_major_locator(hour_loc)
ax.xaxis.set_major_formatter(date_fmt)
plt.tick_params(labelrotation=30)


### 案例三：深圳市24小时的平均风速


import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, HourLocator
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
dates = ['201910240','2019102402','2019102404','2019102406',
'2019102408','2019102410','2019102412', '2019102414',
'2019102416','2019102418','2019102420','2019102422','201910250' ]
x_date = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
y_data = np.array([7, 9, 11, 14, 8, 15, 22, 11, 10, 11, 11, 13,  8])
fig = plt.figure()
ax = fig.add_axes((0.0, 0.0, 1.0, 1.0))
ax.plot(x_date, y_data, '->', ms=8, mfc='#FF9900')
ax.set_title(' 深圳市24小时的平均风速 2020080603052')
ax.set_xlabel('时间（h）')
ax.set_ylabel('平均风速(km/h)')

date_fmt = DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction='in', length=6, width=2, labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)
plt.show()


# 6.4 隐藏轴脊

### 案例四：隐藏全部轴脊

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
polygon = mpathes.RegularPolygon((0.5, 0.5), 6, 0.2, color='g')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))

ax.axis('off')
plt.title("2020080603052")
plt.show()


### 案例五：隐藏部分轴脊

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, 0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))

ax.spines['top'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')
plt.title("2020080603052")
plt.show()


import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, 0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))

ax.spines['top'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')

ax.yaxis.set_ticks_position('none')
ax.set_yticklabels([])
plt.title("2020080603052")
plt.show()


### 案例六：深圳市24小时的平均风速


import numpy as np
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, HourLocator
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
dates = ['201910240','2019102402','2019102404','2019102406',
'2019102408','2019102410','2019102412', '2019102414',
'2019102416','2019102418','2019102420','2019102422','201910250' ]
x_date = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
y_data = np.array([7, 9, 11, 14, 8, 15, 22, 11, 10, 11, 11, 13,  8])
fig = plt.figure()
ax = fig.add_axes((0.0, 0.0, 1.0, 1.0))
ax.plot(x_date, y_data, '->', ms=8, mfc='#FF9900')
ax.set_title(' 深圳市24小时的平均风速 2020080603052')
ax.set_xlabel('时间（h）')
ax.set_ylabel('平均风速(km/h)')

date_fmt = DateFormatter('%H:%M')
ax.xaxis.set_major_formatter(date_fmt)
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.tick_params(direction='in', length=6, width=2, labelsize=12)
ax.xaxis.set_tick_params(labelrotation=45)

ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()


# 6.5 移动轴脊

### 案例七：移动轴脊的位置：

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathes
xy = np.array([0.5,0.5])
polygon = mpathes.RegularPolygon(xy, 5, 0.2,color='y')
ax = plt.axes((0.3, 0.3, 0.5, 0.5))

ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

ax.spines['left'].set_position(('data', 0.5))
ax.spines['bottom'].set_position(('data', 0.5))
plt.title("2020080603052")
plt.show()


### 案例八：正弦与余弦曲线


import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x_data = np.linspace(-2 * np.pi, 2 * np.pi, 100)
y_one = np.sin(x_data)
y_two = np.cos(x_data)
fig = plt.figure()
ax = fig.add_axes((0.2, 0.2, 0.7, 0.7))
ax.plot(x_data, y_one, label='正弦曲线 ')
ax.plot(x_data, y_two, label='余弦曲线 ')
ax.legend()
ax.set_xlim(-2 * np.pi, 2 * np.pi)
ax.set_xticks([-2  * np.pi, -3 * np.pi / 2, -1 * np.pi, -1 * np.pi / 2,
0, np.pi / 2, np.pi, 3  * np.pi / 2, 2  * np.pi])
ax.set_xticklabels(['$-2\pi$', '$-3\pi/2$', '$-\pi$', '$-\pi/2$ ', '$0$',
'$\pi/2$', '$\pi$', '$3\pi/2$', '$2\pi$'])
ax.set_yticks([-1.0, -0.5, 0.0, 0.5, 1.0])
ax.set_yticklabels([-1.0, -0.5, 0.0, 0.5, 1.0])

ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.title("2020080603052")
plt.show()


Original: https://blog.csdn.net/weixin_55680181/article/details/123952267
Author: 张荣博2003
Title: Python数据可视化第六节（坐标轴的定制）

## Title: pandas将df保存为excel，如何避免长数据序号被保存为科学计数法？解答各种坑

#显示不采用科学计数法
import numpy as np
np.set_printoptions(suppress=True)
pd.set_option('display.float_format', lambda x: '%.0f' % x)

#转excel不采用科学计数法
df['id'] = df['id'].astype(np.int64).astype(str)
df.to_excel('try.xlsx')


## 1.问题描述

[En]

Combine a small example to see the possible problems, causes, and why the above solution can be solved.

x = [7030834394457750.0,7030834394457750.0,7030834394457750.0]

[En]

Problems that may be encountered in the process include:

## 2. 解决方案

import numpy as np
np.set_printoptions(suppress=True)
pd.set_option('display.float_format', lambda x: '%.0f' % x) #不采用科学计数法,不要小数点


bingo！

### 问题2: pandas将dataframe输出为excel时，excel中的数据也会以科学计数保存

[En]

Many holes have been dug to answer this question. Here are a few examples:

• 如果数字序号非常长的话，科学技术的小数点是保留不到那么多位的，这会导致数据精度丧失，对id这样的序号来说尤其不可取，比如对一串特别长的数字：

x = [7030834394457754405703083439703083439.0,7030834394457759800703083439703083439.0,7030834394457754409703083439703083439.0]

[En]

After saving it directly into scientific counting and then converting it:

df['id'].astype(str)
df.to_excel('try.xlsx')


[En]

Compared with the previous, it still does not solve the problem.

### 问题原因及方案

import pandas as pd
x = [7030834394457750.0,7030834394457750.0,7030834394457750.0]
df = pd.DataFrame({'id':x})
df


[En]

Instead of changing the data display format, we run the following lines:

import pandas as pd
x = [7030834394457750,7030834394457750,7030834394457750]
df = pd.DataFrame({'id':x})
df


[En]

To sum up, with the combination of [display format setting] and [Save format conversion], problem 1 and problem 2 can be solved completely through the following code:

#显示不采用科学计数法
import numpy as np
np.set_printoptions(suppress=True)
pd.set_option('display.float_format', lambda x: '%.0f' % x)

#转excel不采用科学计数法
df['id'] = df['id'].astype(np.int64).astype(str)
df.to_excel('try.xlsx')


Excel：

Original: https://blog.csdn.net/liatan/article/details/124532529
Author: Liagogo
Title: pandas将df保存为excel，如何避免长数据序号被保存为科学计数法？解答各种坑

(0)

### 大家都在看

• #### Python采集网易财经股票行情排行榜数据

开发环境 解释器版本：python 3.8 代码编辑器：pycharm 2021.2 股票涨幅缩略界面 ; 导入模块 import requests import json imp…

Python 2022年10月26日
0633
• #### 【Python】数据分析：pd.pivot_table

我已经很久没有写过关于数据处理的文章了。我今天在使用数据透视表时碰巧遇到了这个相关的问题，所以请来做个笔记并复习一下。 [En] I haven’t written a…

Python 2022年12月29日
036
• #### python虚拟环境的安装和搭建

🐚 作者: 阿伟💂 个人主页: Flyme awei🐋 希望大家多多支持😘一起进步呀！💬 文章对你有帮助👉关注✨点赞👍收藏📂 ; Python 虚拟环境 文章目录 Python 虚…

2022年8月21日
0165
• #### Python表达式

3.4 Python表达式 Python表达式是 &#x8FD0;&#x7B97;&#x7B26;和 &#x64CD;&#x4F5C;&am…

Python 2023年2月4日
012
• #### 【20211029】【Python】删除 DataFrame 中的某行、某列

pandas 中的 drop 方法是很明智的数据清理的方法，它的好处在于：它不改变原有的 df 中的数据，而是返回另一个新的 DataFrame 来存放删除后的数据。 一、drop…

2022年8月31日
0205
• #### Python制作代码雨

我的一个朋友通过某种声音看到了这个东西。它必须让我得到一个。 [En] A friend of mine saw this thing on a certain sound. It…

Python 2023年1月20日
037
• #### 7.url反向解析

目录 1 相对地址与绝对地址 2 url的反向解析 2.1 在模版中使用 2.2 在视图中使用 1 相对地址与绝对地址 我们先回忆一下之前学习中，使用url的几个地方 我们在写ur…

Python 2022年12月27日
050
• #### 个人总结的三种Python读取txt文件（高效快捷）

不管什么时候，读取txt文件，并生成一个完美的DataFrame数据结构，对我来说都是一项较为艰难的工作。 接下来，我想分享三个相对简单实用的方法，这三个方法是我思索已久的： [E…

Python 2022年12月24日
020
• #### minist手写数据集识别

import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data def comp…

Python 2022年9月6日
0123
• #### python在坐标轴上画矩形_Python使用matplotlib实现在坐标系中画一个矩形的方法

本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法。分享给大家供大家参考。具体实现方法如下： import matplotlib.pyplot as …

Python 2023年1月15日
028
• #### pandas 读取csv : ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start byte

问题描述 用python 读取csv文件时，报错 utf-8′ codec can’t decode byte 0xff in position 0: invalid start …

Python 2023年2月3日
035
• #### 经典面试题-平时用的测试框架是什么？pytest框架下怎么入参？

本文引用自霍格沃兹测试开发学社录播课 平时用的测试框架是什么？pytest 框架下怎么入参？ 霍格沃兹测试开发学社ceshiren.com 问题 面试官问：平时用的测试框架是什么？…

Python 2023年1月18日
022
• #### Android 开发者的跨平台 – Flutter or Compose ？

hello 大家好，我是 Flutter GDE 郭树煜，同时也是 Github GSY 项目的负责人，比如 GSYVideoPlayer ，今天要给大家分享的主题是 Androi…

Python 2023年1月23日
023
• #### 基于MATLAB的加噪语音信号的滤波

MATLAB数字滤波器实现GUI界面设计 一．滤波器的简述 在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方 法即实现方法，并进行图形用户界面设计，以显示所介绍迷你滤…

Python 2023年1月23日
016
• #### Python基础：pip的安装与卸载

一、pip的安装： win+R出现一下界面 然后输入cmd点击确定，出现以下界面，就可进行下载 以下是两种下载方法 1、普通安装：pip install 模板名 2、指定版本安装：…

2022年8月21日
0153
• #### pytest测试框架

一、pytest单元测试框架 1.什么是单元测试框架？ 单元测试是指在软件开发中对软件的最小单元(功能方法)的正确性进行检查和测试。 [En] Unit testing refer…

Python 2023年1月18日
025