用matplotlib做一个横向条形图切x轴为60,70,80,90,100
时间: 2024-09-29 07:11:57 浏览: 33
要在Python中使用`matplotlib`库创建一个横向条形图,并将X轴设置为50个单位刻度,分别对应60、70、80、90和100,你可以按照以下步骤操作:
首先,你需要安装`matplotlib`库,如果尚未安装,可以使用`pip install matplotlib`命令。然后,你可以参考下面的示例代码:
```python
import matplotlib.pyplot as plt
# 定义数据
values = [60, 70, 80, 90, 100]
labels = ['60', '70', '80', '90', '100']
# 创建一个新的图形
plt.figure(figsize=(8, 4)) # 设置图形大小
# 创建横向条形图
plt.barh(range(5), values, tick_label=labels) # x轴为水平,范围从0到4,值为values
# 显示X轴刻度仅限于60、70、80、90、100
plt.xticks([60, 70, 80, 90, 100], labels)
# 设置标题和标签
plt.title('Horizontal Bar Chart with Custom X-axis')
plt.xlabel('Score')
plt.ylabel('Index')
# 显示图形
plt.show()
```
这段代码会生成一个横向条形图,X轴的刻度只显示预设的五个值,Y轴表示每个值对应的索引。
相关问题
由多个图组成的条形图,小条形图的标题怎么设置成横向
将多个图组成的条形图中小条形图的标题设置成横向的代码如下:
```python
import matplotlib.pyplot as plt
# 创建数据
x = ["A", "B", "C", "D", "E"]
y1 = [10, 24, 36, 40, 15]
y2 = [15, 30, 45, 10, 20]
# 创建画布
fig, axs = plt.subplots(2, 1, figsize=(6, 6))
# 绘制子图1
axs[0].bar(x, y1)
axs[0].set_title("Subplot 1 Title", loc="center", pad=30)
axs[0].set_xticks([])
# 绘制子图2
axs[1].bar(x, y2)
axs[1].set_title("Subplot 2 Title", loc="center", pad=30)
axs[1].set_xticks([])
axs[1].text(0.5, -0.1, "Subplot 2 Title", ha="center", va="center", transform=axs[1].transAxes)
# 设置整个图表的标题
fig.suptitle("Bar Chart Title", fontsize=16, y=0.95)
plt.show()
```
这个代码会将多个图组成的条形图中小条形图的标题设置成横向,并且居中显示在图表的上方。其中 `axs[1].text()` 函数用于添加文本,`transform` 参数用于指定文本的坐标系。最后通过 `axs[0].set_xticks([])` 和 `axs[1].set_xticks([])` 函数将 x 轴标签隐藏,使得横向标题能够显示在图表的上方。
将barh绘制的横向条形图,条形数据由大到小的显示
要将条形数据由大到小显示,我们需要先对数据进行排序,然后再进行绘制。下面是一段示例代码:
```python
import matplotlib.pyplot as plt
data = {'A': 20, 'B': 35, 'C': 15, 'D': 30}
# 对数据按值进行排序
sorted_data = sorted(data.items(), key=lambda x: x[1], reverse=True)
labels, values = zip(*sorted_data)
# 绘制横向条形图
plt.barh(range(len(data)), values, align='center')
plt.yticks(range(len(data)), labels)
plt.xlabel('Value')
plt.title('Bar chart sorted by value')
plt.show()
```
在这个例子中,我们首先对字典型数据进行排序,然后使用`zip`函数将排序后的数据分别存储到`labels`和`values`变量中。接着使用`barh`函数绘制横向条形图,并将`labels`作为y轴刻度标签,`values`作为条形数据。最后使用`xlabel`和`title`函数添加x轴标签和图表标题,并使用`show`函数显示图表。运行这段代码,你将会得到一个按数值大小排序的横向条形图。
阅读全文