相关疑难解决方法(0)

python:散点图对数刻度

在我的代码中,我采用两个数据系列的对数并绘制它们.我想通过将其提高到e的幂(自然对数的反对数)来改变x轴的每个刻度值.

换一种说法.我想绘制两个系列的对数图,但是在水平上有x轴.

在此输入图像描述

这是我正在使用的代码.

from pylab import scatter
import pylab
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
import numpy as np

file_name = '/Users/joedanger/Desktop/Python/scatter_python.csv'

data = DataFrame(pd.read_csv(file_name))

y = np.log(data['o_value'], dtype='float64')
x = np.log(data['time_diff_day'], dtype='float64')

fig = plt.figure()
plt.scatter(x, y, c='blue', alpha=0.05, edgecolors='none')
fig.suptitle('test title', fontsize=20)
plt.xlabel('time_diff_day', fontsize=18)
plt.ylabel('o_value', fontsize=16)
plt.xticks([-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4])

plt.grid(True)
pylab.show()
Run Code Online (Sandbox Code Playgroud)

python logarithm matplotlib

35
推荐指数
2
解决办法
6万
查看次数

python matplotlib.pyplot log-log绘图点未显示,因为python选择的y范围很差

在以下生成对数图的代码中,python 选择了一个不显示散点图上的点的 x 范围

import matplotlib.pyplot as plt

plt.scatter([.005,.005],[1,2])
plt.xscale('log')
plt.yscale('log')
plt.show()
Run Code Online (Sandbox Code Playgroud)

此外,如果您改为使用以下代码,它可以正常工作:

import matplotlib.pyplot as plt

plt.plot([.005,.005],[1,2])
plt.xscale('log')
plt.yscale('log')
plt.show()
Run Code Online (Sandbox Code Playgroud)

通常 python 会为 x 和 y 值选择一个合适的范围。为什么在这种情况下不呢?

请注意,我知道可以更改 x 和 y 范围,以便不使用默认值。我的问题是专门问为什么在这种情况下 python 没有选择一个好的范围。

谢谢

我似乎这是为什么 matplotlib 需要在 plt.scatter() 之前设置对数刻度而不是 plt.plot() 的副本?

对于阅读本文的任何人,请告诉我是否应该删除此问题,或者您是否会推荐其他内容。谢谢

python matplotlib

3
推荐指数
1
解决办法
3574
查看次数

标签 统计

matplotlib ×2

python ×2

logarithm ×1